为什么暂停返回-1并设置errno?

时间:2014-10-02 14:04:38

标签: c

根据暂停的手册页,它返回-1并将errno设置为EINTR。

为什么这样做?我理解-1表示失败,而不是正常运作。

2 个答案:

答案 0 :(得分:6)

pause()停止暂停的唯一时间是它被中断,这是失败时的返回(继续暂停)。所以,正确地说,它返回-1表示它无法继续暂停。

答案 1 :(得分:1)

来自POSIX 2008标准:

  

由于pause()无限期地暂停线程执行,除非被信号中断,因此没有成功的完成返回值。应返回值-1并设置errno以指示错误。