利用alarm()和pause()函数实现sleep()函数

本文详细介绍了三种用于进程控制的重要函数:alarm用于设置定时器,在特定时间后触发信号;pause将进程挂起直到收到信号;sleep则让进程暂停执行特定时长。这些函数在系统编程中扮演着关键角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:http://blog.youkuaiyun.com/yuzhihui_no1/article/details/44855419

sleep()是执行挂起一段时间,而alarm()函数是定时器,pause()函数则是挂起进程,当出现信号打断时,才会继续往前执行;

        先来分享下alarm()函数,alarm()函数用来设置一个定时器,当时间超时时,会产生SIGALRM信号,该信号默认是终止该进程;


        #include<unistd.h>

        unsigned int alarm(unsigned int seconds);

        参数:unsigned int seconds表示经过seconds秒后会产生信号SIGALRM;

        返回值:0或者以前设置的闹钟时间的余留秒数;

      

        1、每个进程只能有一个闹钟时钟;

        2、调用alarm()时,假如以前调用过alarm()函数,并且指定的时间还没到(即:还没超时,没有发送SIGALRM信号)。那么此次调用的alarm()函数会替代掉上一次的alarm()函数,并且返回值为上次调用alarm()函数中没有用完的时间;

        3、本次调用alarm(0)函数会取消上一次未超时的定时器,返回剩余的时间;


        下面也看看pause()函数:

        #include<unistd.h>

        int pause(void);

        pause()会把进程挂起来,直到一个信号处理程序执行完后,才会继续运行;

        

        最后看看sleep()函数:

        #include<unistd.h>

        unsigned int sleep(unsigned int seconds);

        该函数使调用进程被挂起了,直到seconds后(超时后),或者捕捉到一个信号并且从信号处理函数返回后,该进程才能继续往下执行;返回值和alarm()函数的一样。

//下面的内容删掉了,想看去原文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值