2011-05-03 90 views
3

我想知道是否有一个声明,我可以使用程序无限期睡眠(可能使用睡眠函数??)。 (我很明显正在等待一个信号,这个信号会在某个时间传递给这个进程,并且会唤醒它)无限期睡眠

+1

我不认为在C语言中有类似的东西。这将取决于操作系统(我已经在没有内置睡眠功能的系统上运行预标准C),所以您应该让我们知道操作系统。我从怀疑提到信号的角度怀疑Unix系列中的某些东西,但我可能错误。 – 2011-05-03 13:58:25

+0

谢谢,但我建议你标记aschepler的答案正确,因为'暂停()'有问题。 – 2011-05-03 15:56:43

回答

5

你想要 pause()

编辑:最有可能的情况下,你可能想使用pause()will actually cause a race condition,所以宁愿sigsuspend()

+2

请勿使用“暂停”。它有一个固有的竞争条件,可以让您等待的信号在暂停之前传输。 'sigprocmask'和'sigsuspend'是处理它的正确方法。 – 2011-05-03 15:08:19

+0

R .:好点。这里有一个很好的解释:http://www.gnu.org/s/hello/manual/libc/Pause-Problems.html和下一页。 – 2011-05-03 15:55:21

1

在Windows上使用Sleep(INFINITE)

+2

这应该是睡眠(无限) – ymett 2011-05-03 14:34:25

+0

编辑,谢谢。 – 2011-05-03 15:00:20