- ベストアンサー
ファイルopenエラーになってしまう。
はじめまして。 今、open関数を使用してファイルをオープン(3秒に1回)しているのですが、一定周期でエラーになってしまいます。 周期:2時間7分 このファイルにIOをかけるのは、ここだけでcloseもちゃんとあります。openのリトライは3回(sleep(300))です。原因が全くわかりません。 どうか、宜しくお願いします。 (win2000 VC6.0)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
CreateFile() でもなく、fopen() でもなく open() を使っているのですね? まずは、きちんとエラーの内容を調べましょう。 VC はしばらく使ってないので、良く覚えてないんですが open() はエラーになると errno に詳細情報を残すはずです。マニュアルで使い方を確認して下さい。 まあ、少ない情報で原因を想定するとしたら (1) close() しているつもりだが、実はできてない (2) 他にバグがあり、open() に渡しているファイル名の領域を破壊している というところでしょうか。 やはり、本命は (1) の方かな。7:3、いや、8:2位で。
その他の回答 (2)
- inetd
- ベストアンサー率23% (43/184)
回答No.3
そのファイル、または他のファイルをクローズし忘れてませんか? close() があっても特定の条件ではそこを通過しないという場合は そうなることがあります。
- y_herohero
- ベストアンサー率30% (72/239)
回答No.2
ループでまわしているのでしょうか? closeに抜けがありerrnoにEMFILEが入っているのでは? ⇒ファイルハンドルをこれ以上使えない(開いたファイルが多すぎる)。 ソースがわかるともっと詳しく回答できるのですが…。