关于使用semctl何时删除信号量
孟如庭 2016-03-11 06:11:17 使用了semget/semop进行同步的操作。SEMOP中设置的flag是SEM_UNDO
程序运行完发现通过ipcs -s查看发现信号量一直存在,应该怎么删除呢?
如果semctl直接删除,但是如果有其他程序在调用,就会出错,有没有类似windows下 互斥量releaseMutex(mutex)、closehandle(mutex)这种类似的操作呢?
我想出的方法是个不通方法,semct通过GETNCNT+GETPID来判断,如果GETNCNT==0,pid是本线程,就进行删除,这样是否可以?有问题吗?或者有更好的方法吗,求教。