#include "ShareMemTest.h" #include #include #include #include int nShareMemID; int main() { //共有メモリ領域を確保しIDを覚えておく nShareMemID = shmget(IPC_PRIVATE, nShareMemSize, SHM_R|SHM_W); printf("nShareMemID = %d\n", nShareMemID); //nVar1にshmatで共有メモリ領域を割り当てる nVar1 = shmat(nShareMemID, 0, SHM_R|SHM_W); //nVar2のための領域は, nVar1のアドレスから1つ先にあるのでそこを指す nVar2 = nVar1 + 1; //nVar1とnVar2に領域を割り当てたので 使えるようになる *nVar1 = 1; *nVar2 = 2; printf("process1 : nVar1 = %d, nVar2 = %d\n", *nVar1, *nVar2); //別ターミナルからipcsを実行し共有メモリ領域を確認するために 終わるのを遅らせる sleep(20); printf("process1 : nVar1 = %d, nVar2 = %d\n", *nVar1, *nVar2); //共有メモリ領域開放 shmctl(nShareMemID, IPC_RMID, 0); return 0; }