- ベストアンサー
_fcloseall
マルチスレッドで_fcloseallを使うとほかのスレッドで開いているファイルまでクローズしてしまうのでしょうか? あるいは、別のプロセスでオープンしているファイルまでクローズしてしまうのでしょうか? 「開いているすべてのストリームを閉じます」とはどういうことなのでしょうか? よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
fopen()したファイルは、プロセスのモノです。 従って、あるプロセスの中の1つのスレッドが開いているモノであっても、それはプロセスのモノであるため、別のスレッドが_fcloseall()を行なえば、閉じられるでしょう。 一方、あるプロセスが開いたファイルを、別のプロセスが閉じることはできません。 まぁ、実験してみてください...みなさん、ちょっとしたことは実験で解決されます。 「開いているすべてのストリームを閉じます」とは、「そのプロセスが開いている全てのファイルを閉じます」と解釈されてよいです。 FILE型で表現されるモノです。 (ほんとは標準入出力もソレなんですが、_fcloseall()は標準入出力は閉じないという仕様ですからね。)
お礼
ありがとうございました!!!