`$ipcs` を実行すると、共有メモリセグメントキーがすべて「0x00000000」であるのはなぜですか?

`$ipcs` を実行すると、共有メモリセグメントキーがすべて「0x00000000」であるのはなぜですか?

$ ipcsしたがって、このセクションを実行するとshared memory segmentさまざまな結果が返されます。

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 524288     jvn        600        524288     2          dest         
0x00000000 1048577    jvn        600        524288     2          dest         
0x00000000 1769474    jvn        600        393216     2          dest         
0x00000000 753667     jvn        600        524288     2          dest         
0x00000000 1146884    jvn        600        16777216   2         

この0x00000000値はすべてのIPCオブジェクトに存在しますが、なぜ変わらないのですか?どういう意味ですか?

より多くの背景情報を提供するために、TLDP状態:

一意のIDを取得するにはキーを使用する必要があります。キーは、クライアントとサーバープロセスの両方で同意する必要があります。これは、アプリケーション用のクライアント/サーバーフレームワークを構築する最初のステップです。

電話で誰かに電話をかけるときは、その人の番号を知る必要があります。また、電話会社は発信電話を最終宛先に転送する方法を知る必要があります。相手が電話を受けて応答すると、接続が確立されます。

System V IPC 施設では、telephone'' correllates directly with the type of object being used. The 電話会社またはルーティング方法が IPC キーに直接接続できます。

キー値をアプリケーションにハードコードすると、キーは毎回同じ値になる可能性があります。欠点は、キーがすでに使用されている可能性があることです。通常、ftok()関数はクライアントとサーバーのキー値を生成するために使用されます。

ベストアンサー1

答えは、Linux Foundation Certified System Administratorsのオンラインコースコンテンツを通して見つけました。

現在実行中のほぼすべての共有メモリセグメントにはキー(IPC_PRIVATEとも呼ばれます)があります。0これは、0x00000000親/子関係のあるプロセス間でのみ共有されることを意味します。

おすすめ記事