为什么sem_wait总是返回0?这是否意味着它永远不会失败?

时间:2015-01-30 06:12:33

标签: linux linux-kernel semaphore

在阅读关于semphores的内容时,我读到了这句话“ sem_wait总是返回0”。这是否意味着它永远不会失败?

资料来源: 请参阅第5张幻灯片 http://os.itec.kit.edu/downloads/sysarch09-mutualexclusionADD.pdf

int sem_wait(sem_t * sem) 返回值始终为0(不能失败)

1 个答案:

答案 0 :(得分:0)

一些挖掘让我认为sem_wait()有两个失败条件:

https://docs.oracle.com/cd/E19120-01/open.solaris/816-5137/sync-255/index.html

在实践中,除非您传递的是错误的地址或者呼叫被中断,否则您的返回值应该为0。