Linux で子プロセスが相互に通信するプログラムを作成しようとしています。
これらのプロセスはすべて同じプログラムから作成されるため、コードを共有します。
2 つの整数変数と整数配列にアクセスできるようにする必要があります。
共有メモリがどのように機能するかはわかりません。検索したすべてのリソースは、私を混乱させるだけでした。
どんな助けでも大歓迎です!
編集: これは、1 つの int を共有するためだけにこれまでに作成したコードの例ですが、おそらく間違っています。
int segmentId;
int sharedInt;
const int shareSize = sizeof(int);
/* Allocate shared memory segment */
segmentId = shmget(IPC_PRIVATE, shareSize, S_IRUSR | S_IWUSR);
/* attach the shared memory segment */
sharedInt = (int) shmat(segmentId, NULL, 0);
/* Rest of code will go here */
/* detach shared memory segment */
shmdt(sharedInt);
/* remove shared memory segment */
shmctl(segmentId, IPC_RMID, NULL);