alarm(),pause(),sleep()函数

alarm函数:

unsigned int alarm(unsigned int seconds);

功能:使用alarm可以设置一个定时器(闹钟时间),如果设置为0,则表示取消之前的设置;否则在将来的某个时刻该定时器会超时,当定时器超时时,产生SIGALRM信号。如果忽略或不捕捉此信号,则其默认动作是终止调用该alarm函数的进程。注:每个进程只能有一个闹钟时间。

返回值:0或以前闹钟设置的闹钟时间余量。

虽然SIGALRM的默认动作是终止进程,但是大多数使用闹钟的进程捕捉此信号,如果此时进程要终止,则在终止前它可以执行所需的清理操作。如果我们想捕捉SIGALRM信号,则必须在调用alarm之前安装该信号的处理程序(signal handler).

pause函数:

 int pause(void);

 功能:使调用进程挂起直至捕捉到一个信号。

    1、进程调用了pause函数后会进入睡眠状态,直到有信号把它叫醒(不被忽略的信号)。
    2、当信号来临后,先执行信号处理函数,信号处理函数结束后pause再返回。
    3、pause函数要么不返回(一直睡眠),要么返回-1,并且修改errno的值。
    4、从功能上来讲它相当于没有时间限制的sleep函数。

使用alarm和pause,进程可以使自己休眠一段指定时间。

sleep函数:

#include <unistd.h>

unsigned int sleep(unsigned int seconds);

功能:使调用的进程睡眠seconds秒
1、调用sleep的进程如果没有睡眠足够的秒数,除非收到信号后才会返回。
2、sleep的返回值是0,或剩余的睡眠秒数。
3、相当于有时间限制的pause

int usleep(useconds_t usec);

功能:睡眠微秒级。

扫描二维码关注公众号,回复: 2480898 查看本文章

猜你喜欢

转载自blog.csdn.net/canger_/article/details/81260848
今日推荐