同じファイル記述子の2つのスレッドからfwrite&fcloseを並列と呼ぶことはできますか?

StackOverflow https://stackoverflow.com/questions/3685128

  •  02-10-2019
  •  | 
  •  

質問

どうすれば起こりますか fwrite & fclose 同じファイル記述子の2つのスレッドから並行して呼び出されますか?

役に立ちましたか?

解決

fwritefclose で動作します FILE データ構造。これはファイル記述子以上のものを保存する大規模なデータ構造であるため、答えは悪いことです。

ミューテックスを使用して原子動作を確保しない限り、これを行わないでください。

他のヒント

POSIXが必要です FILE スレッドセーフにアクセスできますが、それ以来です fclose ファイルを閉じてポインターを無効にしますが、方法はありません(つまり、仕様の問題ではなく、「固定」または使用することはできない基本的なAPIの問題です) fclose 別のスレッドがアクセスしている場合 FILE まだ。独自のロックを行う必要があります。

このような状況では、メソッドの優先順位を定義する必要があります。 「同期」でメソッドを制御できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top