gpt4 book ai didi

c - semop : Invalid argument

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:37 27 4
gpt4 key购买 nike

我有这段代码,它基本上在信号量上生成一个 P,编号为 sem。信号量在池中。问题是有时我得到 Invalid argument 并且我不知道为什么。

bool sem_p(key_t key, int sem){
int semid = semget(key, sem, 0666);
struct sembuf sb = {sem, -1, 0};
if(semop(semid, &sb, 1) == -1){
perror("sem p");
printf("sem %d\n", sem);
return FALSE;
}
return TRUE;
}

当该函数被调用时,它打印

sem p: Invalid argument

最佳答案

检查是否

int semid = semget(key, sem, 0666);

返回成功或失败。正如@VladLazaranenko 提到的那样,可能会出现很多错误。检查您调用的每个函数的每个返回代码(如果它们返回值)- 对于生产系统。

关于c - semop : Invalid argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21531722/

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