gpt4 book ai didi

c - c中的信号量初始化

转载 作者:太空宇宙 更新时间:2023-11-03 23:31:44 31 4
gpt4 key购买 nike

arg.val = 1;

if (sem_id = semget(IPC_PRIVATE, 1, 0600 | IPC_CREAT) == -1 ){
perror("Creating semaphore failed");
exit(1);
}
else {
printf("Creating a semaphore with ID: %d \n",sem_id);
if (semctl(sem_id, 0, SETVAL, arg) == -1 ) {
perror("Initialization of semaphore failed\n");
exit(1);
}
}

我正在尝试创建和初始化一个信号量,当我编译我的程序时它返回给我:
“信号量初始化失败:标识符已删除

你能解释一下为什么会这样吗??

最佳答案

if (sem_id = semget(IPC_PRIVATE, 1, 0600 | IPC_CREAT) == -1 )

被解析(因为==绑定(bind)比=强)

if (sem_id = (semget(IPC_PRIVATE, 1, 0600 | IPC_CREAT) == -1) )

你可能想要

if ((sem_id = semget(IPC_PRIVATE, 1, 0600 | IPC_CREAT)) == -1 )

关于c - c中的信号量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904995/

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