こんにちはすべて私はflockfile関数についての質問をしたいと思います。記述を読んで、スレッドで使用されていることを知りました。しかし私はフォークを行っています。つまり、スレッドではなく、異なるプロセスでflockfileを使うことができます。はflockfile関数をプロセスに使用することができます
おかげで
こんにちはすべて私はflockfile関数についての質問をしたいと思います。記述を読んで、スレッドで使用されていることを知りました。しかし私はフォークを行っています。つまり、スレッドではなく、異なるプロセスでflockfileを使うことができます。はflockfile関数をプロセスに使用することができます
おかげで
これらの関数は、唯一のプロセス内で使用することができます。 POSIX docsから
:要約
、他のスレッドと標準入出力ストリームを共有するスレッドは(flockfile関数を使用することができる)とfunlockfileも()バンドル維持される単一のスレッドによって実行されるI/Oのシーケンスを生じさせます。
このページの残りの部分では、スレッド間の相互排除について説明しています。異なるプロセスはファイルストリームの入出力バッファが異なりますが、このロックは実際には意味がありません。
flockfile
関数はファイルをロックしませんが、プロセスがファイルにアクセスするために使用するデータ構造はFILE
です。これは、プロセスがファイルを持っているアドレス空間の表現であり、必ずしもファイルそのものに関するものではありません。
でも同じファイル上で開い異なるFILE
秒を持っている場合、プロセスで、あなたはflockfile
によってFILE
Sのそれぞれをロックした場合でも、そのファイルに同時に書き込むことができます。
ファイル自体をロックするには、flock
とlockf
を参照してください。ただし、同じプロセスの異なるスレッドを介したアクセスファイルに対する影響の規則は複雑です。