アンチウイルスソフトの活動でファイル書き込みに失敗していた
MFCでアプリ開発していた時のこと
CFile file
file.Open(_T("dump.bin", CFile::modeWrite | CFile::modeCreate);
上記でファイルオープンしてデータを書きこむアプリをデバッグ中に、
ときどき、Openに失敗(戻り値 FALSE)となることがあった。
<原因>
アンチウイルスソフトが、裏でdump.binの内容を解析していて、
かつOpenで共有モードを指定していなかったので、デフォルトのCFile::shareExclusiveとなっていたため、ファイルがすでに開かれており、Openエラーとなっていた。
*.binという名前は疑われる?
<対策>
file.Open(fname, CFile::modeWrite | CFile::modeCreate | CFile::shareDenyWrite);
とした。