• ベストアンサー

ファイルopenエラーになってしまう。

はじめまして。 今、open関数を使用してファイルをオープン(3秒に1回)しているのですが、一定周期でエラーになってしまいます。  周期:2時間7分 このファイルにIOをかけるのは、ここだけでcloseもちゃんとあります。openのリトライは3回(sleep(300))です。原因が全くわかりません。 どうか、宜しくお願いします。 (win2000 VC6.0)

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

CreateFile() でもなく、fopen() でもなく open() を使っているのですね? まずは、きちんとエラーの内容を調べましょう。 VC はしばらく使ってないので、良く覚えてないんですが open() はエラーになると errno に詳細情報を残すはずです。マニュアルで使い方を確認して下さい。 まあ、少ない情報で原因を想定するとしたら (1) close() しているつもりだが、実はできてない (2) 他にバグがあり、open() に渡しているファイル名の領域を破壊している というところでしょうか。 やはり、本命は (1) の方かな。7:3、いや、8:2位で。

その他の回答 (2)

  • inetd
  • ベストアンサー率23% (43/184)
回答No.3

そのファイル、または他のファイルをクローズし忘れてませんか? close() があっても特定の条件ではそこを通過しないという場合は そうなることがあります。

回答No.2

ループでまわしているのでしょうか? closeに抜けがありerrnoにEMFILEが入っているのでは? ⇒ファイルハンドルをこれ以上使えない(開いたファイルが多すぎる)。 ソースがわかるともっと詳しく回答できるのですが…。

関連するQ&A