0

共有メモリを使用して通信するには、2 つのプロセスで同じキーを使用する必要があることを学びました。私が見たサンプルコードでは、キーは両方のプログラム(送信者、受信者)でハードコードされています。私の疑問は、2 つの予期しないプロセスが同じキーをどのように使用するかということです。ftok() 関数について読みましたが、引数としてファイル パスを要求します。しかし、以下のシナリオのようにリアルタイムでどのように可能か

ユーザーが firefox から print to file コマンドを実行すると、ghostscript などの他のプログラムが ps/pdf ファイルを作成するとします (共有メモリを使用すると仮定)。Firefox と Ghostscript が共有メモリを使用する方法

4

1 に答える 1

0

互いに認識されていない 2 つのプロセスは、共有メモリを一緒に使用するために、定義された (および共有された) プロトコルを使用する必要があります。また、そのプロトコルには、共有メモリにアクセスする方法に関する情報 (たとえば、shmget 呼び出しの整数値) を含める必要があります。基本的に、「ハードコードされた」識別子またはそれを発見するための何らかの方法を定義する必要があります。

この情報 (メモリ内にあるものを含む) を定義するある種のプロトコルがなければ、別のプロセスによって設定されたメモリ位置にあるものを特定のプロセスが推測することさえできません。

于 2013-03-26T23:58:08.620 に答える