The following test program: #include <sys/shm.h> #include <errno.h>
int main(int argc, char **argv) { int pid = fork(); int id; if (pid == 0) { sleep(5); id = shmget(1, 100, IPC_CREAT | 0666); printf("child (%d): %d (%d)\n", getpid(), id, errno); } else { id = shmget(1, 100, IPC_CREAT | 0666); printf("parent (%d): %d (%d)\n", getpid(), id, errno); sleep(10); shmctl(id, IPC_RMID, 0); } return (0); } Produces: parent (6592): 720896 (0) child (28268): 1638401 (0) Showing that the child process created its own segment instead of begin given the parent's segment. This is a bug. ===== Jerry D. Hedden << If you're not having fun, then you're not doing it right! >> -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/