いくつかの子プロセスを生成するプロセスがあります。それらはすべて 1 つのセマフォを共有しています。
私のメインプログラムで。
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() は印刷されません。一度もありません。
私は数時間それに取り組んできましたが、私の問題はわかりません。誰か手を貸してくれませんか?ありがとう。