# include <stdio.h> # include </usr/include/sys/types.h> # include </usr/include/sys/shm.h> # include </usr/include/sys/ipc.h> # include \"forkjoin.h\" int main() { int arr1[10]={1,1,1,1,1,1,1,1,1,1}; int id; int iCount; int shmid; int *arr2; shmid=shmget(IPC_PRIVATE,20,IPC_CREAT| SHM_R | SHM_W); arr2=(int *)shmat(shmid,0,0); for(iCount=0;iCount<10;iCount++) { arr2[iCount]=2; } /* Copy Array-1 to Array-2 Using 2 Processes */ id=process_fork(2); if(id==0) { /* Parent Process */ for(iCount=0;iCount<10;iCount=iCount+2) { arr2[iCount]=arr1[iCount]; } } else { /* Child Process */ for(iCount=1;iCount<10;iCount=iCount+2) { arr2[iCount]=arr1[iCount]; } } process_join(2,id); printf(\"\\n Array 2 ... \\n\"); for(iCount=0;iCount<10;iCount++) { printf(\"arr2[%d] : %d\\n\",iCount,arr2[iCount]); } return 0; }