gpt4 book ai didi

c - 我如何判断信号量是否已被销毁,如果没有销毁它

转载 作者:太空宇宙 更新时间:2023-11-04 03:59:15 25 4
gpt4 key购买 nike

我有3个POSIX?信号量和几个错误条件。信号量是全局可访问的。我如何检查它们是否在错误发生之前被销毁(或者它们是否在一开始就被初始化)。

// Example c program
#include <semaphore.h>

sem_t mySemaphore;

void errorHandling(){
// if (mySemaphore exists)
// sem_destroy(&mySemaphore);
}

int main(){

// possible errors

if ((sem_init(&mySemaphore, 0, 1)) < 0)
errorHandling();

// more possible errors and multi threading stuff

sem_destroy(&mySemaphore);

return (EXIT_SUCCESS);
}

最佳答案

您需要一个单独的标志,默认情况下为 false。初始化时设置为 true,销毁时返回 false。

如果是多线程应用程序,请确保互斥锁保护这些访问。另外,我强烈建议您编写函数来在一个地方处理所有这些。

关于c - 我如何判断信号量是否已被销毁,如果没有销毁它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13537715/

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