我正在检查semop()
函数,结构的标志值sembuf
可以是 SEM_UNDO 或 IPC_NOWAIT。因此,如果我们将标志值传递为 0,那么行为会是什么?我在某处读到它是无操作的。这意味着什么?谁能解释一下?
问问题
1505 次
1 回答
2
最好的办法是阅读规范——POSIX 规范semop()
解释了这一切。
如果该标志为0,则表示该操作可能会导致进程挂起等待信号量变为可用(如果包含该标志IPC_NOWAIT
,则不会挂起),也意味着信号量值不会被调整为撤消进程崩溃时的操作(如果包含标志SEM_UNDO
,系统将记录撤消信号量操作所需的信息。这是否被认为是安全的取决于您。
于 2013-10-10T02:58:16.787 回答