#include <iostream>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<sys/ipc.h>
#include<sys/shm.h>

using namespace std;

int main(void) {
         int shmid;
         key_t key=1010;
         int *shm;
         //request from system shared memmory
         shmid=shmget(key,4,IPC_CREAT|0666);
         cout << "SHMID=" <<shmid <<endl;
         int pid=fork();
         shm=(int *) shmat(shmid,NULL,0);
         if (pid==0) {
                     cout << "child var=" <<*shm<<endl;
                     for (int i=0;i<10;i++) {
                     *shm+=1;
                     }
         } else { 
         wait(NULL);
         cout << "parent var=" <<*shm <<endl;
         shmctl(shmid,IPC_RMID,NULL);

         }

return 0;
}
