同じファイル記述子の2つのスレッドからfwrite&fcloseを並列と呼ぶことはできますか?
質問
どうすれば起こりますか fwrite
& fclose
同じファイル記述子の2つのスレッドから並行して呼び出されますか?
解決
fwrite
と fclose
で動作します FILE
データ構造。これはファイル記述子以上のものを保存する大規模なデータ構造であるため、答えは悪いことです。
ミューテックスを使用して原子動作を確保しない限り、これを行わないでください。
他のヒント
POSIXが必要です FILE
スレッドセーフにアクセスできますが、それ以来です fclose
ファイルを閉じてポインターを無効にしますが、方法はありません(つまり、仕様の問題ではなく、「固定」または使用することはできない基本的なAPIの問題です) fclose
別のスレッドがアクセスしている場合 FILE
まだ。独自のロックを行う必要があります。
このような状況では、メソッドの優先順位を定義する必要があります。 「同期」でメソッドを制御できます。
所属していません StackOverflow