gpt4 book ai didi

c - sem_wait 无法继续

转载 作者:行者123 更新时间:2023-11-30 17:54:16 25 4
gpt4 key购买 nike

我有一个进程生成了几个子进程。它们都共享一个信号量。

在我的主程序中。

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() 永远不会打印。一次也没有。

我已经研究了几个小时了,但我看不到我的问题。有人可以帮忙吗?谢谢。

最佳答案

我认为该行为是由于之前运行中缺少 sem_close() 造成的。只需确保您正确关闭信号量,以便在将来的运行中正确分配信号量的起始值并且 sem_wait() 应该起作用。

关于c - sem_wait 无法继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15046492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com