プロセス間通信、共有メモリと信号---

1.共有メモリ・セグメント・システムをチェック

-m IPCS
2.共有メモリセグメントのシステムを削除します

-mのipcrm [shmidを】
3.shmget():共有メモリを作成します

たshmget整数(key_tのキー、size_tのサイズ、int型shmflg);
[Parametersキー]:ftokキー、識別システムによって生成されたIPC一意リソース識別子。

[パラメータのサイズ]:共有メモリサイズのために適用する必要があります。メモリの断片化を回避するために、オペレーティング・システム、メモリ・ページの最小単位のアプリケーション、一つは4Kバイトで、メモリのサイズが、我々は、一般的に、ページの整数倍に適用されます。

【パラメータはshmflg]:あなたが新しい共有メモリを作成したい場合は、それがすでに存在する場合、あなたは、IPC_CREAT、IPC_EXCLを使用する必要がある、またはIPC_CREAT 0を渡し、直接使用することができます。

[戻り値]:成功した場合にはshmflgのパラメータに応じて、新規または既存の共有メモリ識別子を返します。-1を返す失敗し、エラーコード。

4.shmat():共有メモリを取り付け

*にshmatボイド(shmidをINT、CONSTは、shmaddrボイド*、INT shmflgによって);
【パラメータshmidを]:共有メモリセグメントの識別子。

【パラメータ*は、shmaddr]:= 0は、shmaddrは、メモリセグメントがカーネル(推奨)によって選択された最初のアドレスに接続することができます。

[パラメータshmflg]:SHM_RDONLYとして指定されたビットの読み出し専用、このセクションこのセクションを接続するか、読み書き可能に接続されている場合。

[戻り値]:共有メモリセグメントに成功したリターンポインタ(仮想アドレス)、および共有メモリセグメントshmid_ds構造体のshm_nattchをカウンタに関連付けられたカーネルを行います1(同様の参照カウント)だけインクリメントされ、エラー復帰-1。

5.shmdt():共有メモリを関連付けます

プロセスは、共有メモリを必要としないときは、関連付ける必要があります。この関数は、指定された共有メモリ領域を削除しませんが、あなたの前に良いにshmat関数で現在のプロセスから共有メモリ領域を接続します。

shmdtはint(は、shmaddrでは、const void *型);
[パラメータ*は、shmaddr]:リターンアドレスを接続した後。

[戻り値]:成功した場合はリターン0、及び1による構造体shm_nattchをするshmid_dsカウンタ; -1エラー。

6.shmctl():共有メモリの破壊

(するshmid_ds構造体shmidをint型、CMDをINT、* BUF)shmctlのINT;
【パラメータshmidを]:共有メモリセグメント識別子。

【パラメータCMD]:指定された操作は場合IPC_RMID共有メモリ設定を示して除去することができる行います。

[パラメータ* bufが]:NULLに設定することができます。

[戻り値]:リターン0成功した場合、失敗すると-1。
---------------------
著者:YPT_victory
出典:CSDN
オリジナルます。https://blog.csdn.net/ypt523/article/details/79958188
免責事項:この記事ブロガーのオリジナルの記事、複製など、ボーエンのリンクを添付してください!

 

参考:

https://blog.csdn.net/ypt523/article/details/79958188

https://www.cnblogs.com/LUO77/p/5816326.html

おすすめ

転載: www.cnblogs.com/vivid-zhang/p/11134900.html