2016-03-20 13 views
0

open("file.txt",O_RDONLY)でテキストファイルを開くと、close()で閉じる必要がありますか?C - システムコールでファイルを開いた後にファイルを閉じる必要があります

愚かな質問ですが、私は知っていますが、プロセスの終了が開いているファイルを開いているかどうかは完全にはわかりません。

+0

あなた自身の後に整理するのにちょうどいいマナー –

+0

サイドノート - Cで書かれたアプリケーションコードでは、通常は '' fopen'(http://man7.org/linux/man-pages/man3/fopen)を使うべきです。 3.html)を呼び出す代わりに 'open'を呼び出します。 'fopen'は標準的な' C'です。これは非常にポータブルです.Windowsでも 'open'はPOSIXなので、移植性はやや劣ります。だから、 'open'は' mmap'、 'pread'、' readv'のようなよりエキゾチックな機能を提供しますが、移植性を諦めてしまいます。コードが 'open'、' read'、 'write'、' lseek'、 'close'だけを呼び出す場合、' fopen'、 'fread'、' fwrite'、 'fseek'を呼び出すべきです。 、 'fclose'を実行します。 –

+0

私は知っているが、私が好きな日本の漫画を引用するために、こんにちは、これは学生です!人間の言葉で言えば、それは割り当ての限界だった - ファイルからの入出力を扱うライブラリ関数の代わりにシステムコールを使うこと。 – Sunspawn

答えて

5

ファイルは、閉じるかプロセスが終了するまで開いたままです。プロセスが終了すると、そのプロセスのファイル記述子が無効になります。したがって、本質的にファイルを「閉じる」。

私はいつも明示的に、早く合理的に閉じるでしょう。

関連する問題