重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

fopenでファイルを開いているときに異常終了するなどして、ファイルが開きっぱなしになったりはしないでしょうか?
もしその時にはどう対処すればよいでしょうか?

A 回答 (3件)

>異常終了するなどして


プログラムが異常終了するというのは、メモリのアクセス違反など
のことを言っているのか、単にそれ以上の処理ができないから、
プログラム上のエラーなのか。。。
前提が不鮮明です。

>一例としては、どのような方法がありますでしょうか?
単にプログラム側が処理を継続できないからエラーにしているのなら
「借りたものはきちっと返す」「使ったものは片付ける」って事で
終了する前に、オープンしたファイルや確保したメモリは全て
クローズ・解放するのが普通です。
もしも、アクセス違反などの異常をいっているのなら、
「アクセス違反などの異常に対処するより、しっかりテストして
 バグを潰す」のが筋でしょう。

それでもやりたいなら、
Windowsなら例外ハンドルを登録して、これらの異常を
検出することが可能です。
#Linuxはシグナルを使うと思いますが、
#アクセス違反などの例外を取れるかはわかりません。

最近のOSはしっかりしているので、これらの異常の場合は
OSがそのプロセスが保有するリソース(ファイルなどのこと)を
解放してくれるとは思いますが。。。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
まだ初心者なので少し話が難しいですが、なんとなく雰囲気で対処してみます。

お礼日時:2008/01/06 18:26

> fopenでファイルを開いているときに異常終了するなどして、ファイルが開きっぱなしになったりはしないでしょうか?



環境にもよりますし、どんな終了の仕方をしたかにもよります。

> もしその時にはどう対処すればよいでしょうか?

環境に依存しない一般的な対処方法はありません。

この回答への補足

回答ありがとうございます、WindowsとLinuxを使ってます。
一例としては、どのような方法がありますでしょうか?
fclose(fp); だけを実行するプログラムでは無理でしょうか?

補足日時:2008/01/04 03:00
    • good
    • 0

通常はOSがクローズしてくれます。

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
参考になりました。それほど神経質にならなくてもいいのでしょうか…

お礼日時:2008/01/04 03:13

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