为什么'pause'系统调用总是返回-1?

时间:2011-11-24 09:55:11

标签: c system-calls

或者,为什么我们不能简单地将暂停声明为:

#include <unistd.h>
void pause(void);

因为暂停的返回值没有意义。

1 个答案:

答案 0 :(得分:2)

来自man page of pause

RETURN VALUE

   pause()  only  returns when a signal was caught and the signal-catching
   function returned.  In this case pause() returns -1, and errno  is  set
   to EINTR.

每个被中断的系统调用都会在特殊情况下获得EINTR(或ERESTART)。我认为没有理由让pause成为例外!

当然,您可以在代码中编写(void) pause ();以忽略结果。