在阅读关于semphores的内容时,我读到了这句话“ sem_wait总是返回0”。这是否意味着它永远不会失败?
资料来源: 请参阅第5张幻灯片 http://os.itec.kit.edu/downloads/sysarch09-mutualexclusionADD.pdf
int sem_wait(sem_t * sem) 返回值始终为0(不能失败)
答案 0 :(得分:0)
一些挖掘让我认为sem_wait()有两个失败条件:
https://docs.oracle.com/cd/E19120-01/open.solaris/816-5137/sync-255/index.html
在实践中,除非您传递的是错误的地址或者呼叫被中断,否则您的返回值应该为0。