我正在编写一个简单的程序,它在读取或写入时使用共享内存和信号量来锁定它。程序完成后,必须删除所有共享内存和信号量。我们有自己的 sem 库,它实现了函数 seminit、semrm、semgrab、semdown、semup。我已经让程序正常工作,但我不清楚信号量删除部分。
由于最后必须删除所有信号量,而程序被多次调用,我什么时候删除它们?我的意思是,我必须确保在它们仍在使用时不会删除它们。有没有可能检查它是否仍在使用?
我不确定如何解决这个问题。
简短的问题总结:程序被多次调用,最后需要删除信号量,只有一个程序需要处理,而不是另一个正在清理的程序。