マルチスレッド アプリケーションでは、ファイル記述子へのアクセスをシリアル化する必要があります。プロセス間で flock(2)
を使用できます syscall を使用して、同じファイルへのアクセスを同期します。
2 つの異なるプロセス/スレッドから同じファイルにアクセスしても、カーネルはクラッシュしませんが、ファイルの位置とファイル データを未定義の方法で上書きまたは破損する可能性があります。
Linux は、ファイルへのマルチスレッド書き込みを保護するためにロック メカニズムを使用しません。
ファイルを保護するには、独自のミューテックスを使用する必要があります。