我有一个进程产生了一些子进程。它们都共享一个信号量。
在我的主程序中。
sem_t *sharedSem = sem_open(SHAREDSEM, O_CREAT, 0600, 4); // Initial 1
在我的儿童节目中。
> sem_t * serverSem = sem_open(SHAREDSEM, 0);
sem_wait(serverSem);
printf("PRINTING\n");
sem_post(sharedSem);
我的观察是问题出在 sem_wait 之内。在子进程上的 sem_wait 之前发生的任何事情都会打印出来。但是, sem_wait 之后的 printf() 永远不会打印。一次都无。
我已经做了几个小时了,我看不到我的问题。任何人都可以伸出援助之手吗?谢谢。