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);

功能:睡眠微秒级。

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值