最新閲覧日:

はじめまして。
今、open関数を使用してファイルをオープン(3秒に1回)しているのですが、一定周期でエラーになってしまいます。
 周期:2時間7分

このファイルにIOをかけるのは、ここだけでcloseもちゃんとあります。openのリトライは3回(sleep(300))です。原因が全くわかりません。
どうか、宜しくお願いします。
(win2000 VC6.0)

A 回答 (3件)

そのファイル、または他のファイルをクローズし忘れてませんか?


close() があっても特定の条件ではそこを通過しないという場合は
そうなることがあります。
    • good
    • 0

ループでまわしているのでしょうか?


closeに抜けがありerrnoにEMFILEが入っているのでは?
⇒ファイルハンドルをこれ以上使えない(開いたファイルが多すぎる)。

ソースがわかるともっと詳しく回答できるのですが…。
    • good
    • 0

CreateFile() でもなく、fopen() でもなく open() を使っているのですね?



まずは、きちんとエラーの内容を調べましょう。

VC はしばらく使ってないので、良く覚えてないんですが open() はエラーになると
errno に詳細情報を残すはずです。マニュアルで使い方を確認して下さい。

まあ、少ない情報で原因を想定するとしたら

(1) close() しているつもりだが、実はできてない
(2) 他にバグがあり、open() に渡しているファイル名の領域を破壊している

というところでしょうか。

やはり、本命は (1) の方かな。7:3、いや、8:2位で。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報