8.4.4 让进程休眠

8.4.4 让进程休眠

sleep 函数将一个进程挂起一段指定的时间。

#include <unistd.h>

unsigned int sleep(unsigned int secs);

返回: 还要休眠的秒数。

如果请求的时间量已经到了,sleep 返回 0,否则返回还剩下的要休眠的秒数。后一种情况是可能的,如果因为 sleep 函数被一个信号中断而过早地返回。我们将在 8.5 节中详细讨论信号。

我们会发现另一个很有用的函数是 pause 函数,该函数让调用函数休眠,直到该进程收到一个信号。

#include <unistd.h>

int pause(void);

总是返回 -1。

练习题 8.5 编写一个 sleep 的包装函数,叫做 snooze,带有下面的接口:

unsigned int snooze(unsigned int secs);

snooze 函数和 sleep 函数的行为完全一样,除了它会打印出一条消息来描述进程实际休眠了多长时间:

Slept for 4 of 5 secs.