2

実行中のプロセスが 2 つあります。1 つは共有メモリ (mmap) から読み取り、もう 1 つはその共有メモリ (mmap) に書き込みます。これらのプロセスは 2 つの異なるターミナルで別々に開始されますが、一方のプロセスが書き込みを行っている間に、もう一方のプロセスがメモリから読み取る前に全量を書き込むように同期する必要があります。共有メモリミューテックスロックに関連して私が見たすべての投稿は、単一のメインプログラムからスレッド/プロセスを生成しています。2 つの別々のプログラムで使用できる共有ミューテックス ロックを作成する方法はありますか?

4

2 に答える 2

1

共有ミューテックスをmmapped ファイルに作成できます。Linux を使用していて、十分に新しいカーネルを使用している場合は、リンクされていない一時ファイルを作成することもできますmmap。ミューテックスを初期化してから、最終的な場所にリンクします。または、ファイル ロックを使用して、初期化が完了するまでアクセスを拒否することもできます。

pthread_mutexattr_initlinux.die.net のPOSIX マニュアルのセマフォの例は、Linux 4.2.0-27 Ubuntu で動作しました。

于 2016-03-14T20:29:22.707 に答える