私はかなり長い間同じコードを実行してきましたが、今朝fopen
は失敗しました。fopen
ここで返されたポインターが次のとおりである場合NULL
、ファイルが正常に開かれなかったと結論付ける簡単なチェックがあります。 .aspx
プロジェクトの呼び出しコード:
return fopen(a_fileName, "r"); // expected return to be NULL if the file can't be opened
この時点で確認できerrno
ますが、コードはクロスプラットフォームであるため、信頼できるかどうかはわかりませんerrno
。しかし、元の問題に戻りますが、なぜ戻ってfopen
こないNULL
のでしょうか? 以下のVisual C++ デバッガーのスクリーンショットを参照してください。
ファイルは実際には存在しますが、何らかの理由で (現在調査中です - 再現できない可能性があるため、問題を確認する前にこの質問を投稿することにしました) fopen
、ファイルを開くことができないことに注意してください。しかし、繰り返しになりますが、なぜ返されないのNULL
でしょうか?
これが通常の動作である場合、次のように書く必要があります。
if (retFilePtr != NULL && retFilePtr->_ptr != NULL)
{
// do some stuff
}