Q718
What is the output of second program if we run the demo1 first and after that we run demo2 in the different terminal? /*This is demo1.c*/ #include #include #include #include int main() int shm_id; char *addr; struct shmid_ds ds; shm_id = shmget((key_t)1234,10,0666|IPC_CREAT); if(shm_id == -1) perror("shmget"); addr = (char*)shmat(shm_id,NULL,SHM_RND); if(addr == (char *)-1) perror("shmat"); strcpy(addr,"Example"); if (shmdt(addr) != 0) perror("shmdt"); sleep(10); if( shmctl(shm_id,IPC_RMID,0) == -1) perror("shmctl"); return 0; /*This is demo2.c*/ #include #include #include int main() int shm_id; char *addr; struct shmid_ds ds; shm_id = shmget((key_t)111,10,0666|IPC_CREAT); if(shm_id == -1) perror("shmget"); addr = (char*)shmat(shm_id,NULL,SHM_RND); if(addr == (char *)-1) perror("shmat"); printf("%s ",addr); if (shmdt(addr) != 0) perror("shmdt"); return 0;
A.
the program will print the string "Example"
AnswerB.
the program will nothing
C.
segmentaion fault
D.
none of the mentioned
Answer: Option A
Solution
Answer: Option A
No explanation is given for this question Let's Discuss on Board