アプリ版:「スタンプのみでお礼する」機能のリリースについて

fopen() がたまに失敗します。
GetLastError() は、0を受けます。
昔、fopen() が失敗する場合についてのサイトを見たような記憶があるんだけど
fopen() についていい情報があったら教えて下さい。
fopen() だけをするというシンプルなソースではそのようなエラーは
起きていません。エラーが発生するソースの他の部分に原因があるというのが
一番可能性がありそうなんだけど、原因がなかなか分かりません。

A 回答 (3件)

>fopen() がたまに失敗します。


当然ですが、エラーが発生すればNULLが返ります。
エラーの原因は、指定したオープンモードでオープンで
きないからです。
http://www.bohyoh.com/CandCPP/C/Library/fopen.html

標準関数ですから、エラーの情報はerrnoで見てください。
但し、fopen()の直後にチェックしなければ正しい値は取得できません。
    • good
    • 0

fopen() は Win32 API ではないので、


エラーを調べるなら GetLastError() ではなく errno ですね。
    • good
    • 0

fopenは指定されたファイルをオープンしストリームを結びつけますがそのオープンに失敗したときはNULLを返すようになっていますよ。


つまりNULLが返されたかどうかを判断してファイルのオープンに成功したかどうかを判断できるようになっているんです。

NULLを返すのはごくふつうのことなんですが。ファイルがないとかオープンできない状態だったらNULLを返してくれないと判断できませんので。

それとソースがわからなければ原因なんかわかりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!