11 shmctl(id, IPC_RMID, NULL);
16 # define SHMAT "osf_shmat"
18 # define SHMAT "shmat"
24 id = shmget(IPC_PRIVATE, 1, 0600);
26 perror_msg_and_skip("shmget");
29 shmat(id, NULL, SHM_REMAP);
30 printf("%s(%d, NULL, SHM_REMAP) = -1 %s (%m)\n",
31 SHMAT, id, errno2name());
33 void *shmaddr = shmat(id, NULL, SHM_RDONLY);
34 if (shmaddr == (void *)(-1))
35 perror_msg_and_skip("shmat SHM_RDONLY");
36 printf("%s(%d, NULL, SHM_RDONLY) = %p\n", SHMAT, id, shmaddr);
39 perror_msg_and_skip("shmdt");
40 printf("shmdt(%p) = 0\n", shmaddr);
43 void *shmaddr2 = shmat(id, shmaddr, SHM_RND);
44 if (shmaddr2 == (void *)(-1))
45 printf("%s(%d, %p, SHM_RND) = -1 %s (%m)\n",
46 SHMAT, id, shmaddr, errno2name());
48 printf("%s(%d, %p, SHM_RND) = %p\n",
49 SHMAT, id, shmaddr, shmaddr2);
51 puts("+++ exited with 0 +++");