• ベストアンサー

_fcloseall

マルチスレッドで_fcloseallを使うとほかのスレッドで開いているファイルまでクローズしてしまうのでしょうか? あるいは、別のプロセスでオープンしているファイルまでクローズしてしまうのでしょうか? 「開いているすべてのストリームを閉じます」とはどういうことなのでしょうか? よろしくお願い致します。

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

  • ベストアンサー
回答No.1

fopen()したファイルは、プロセスのモノです。 従って、あるプロセスの中の1つのスレッドが開いているモノであっても、それはプロセスのモノであるため、別のスレッドが_fcloseall()を行なえば、閉じられるでしょう。 一方、あるプロセスが開いたファイルを、別のプロセスが閉じることはできません。 まぁ、実験してみてください...みなさん、ちょっとしたことは実験で解決されます。 「開いているすべてのストリームを閉じます」とは、「そのプロセスが開いている全てのファイルを閉じます」と解釈されてよいです。 FILE型で表現されるモノです。 (ほんとは標準入出力もソレなんですが、_fcloseall()は標準入出力は閉じないという仕様ですからね。)

masa___2001
質問者

お礼

ありがとうございました!!!

関連するQ&A

専門家に質問してみよう