linux之sleep

linux中的sleep为库调用(library calls),其声明文件为unistd.h。

unsigned int sleep(unsigned int seconds);

如果进程或者线程调用sleep请求的休眠的时间seconds过去,那么会返回0;如果休眠期间被信号中断,那么返回剩余的休眠时间。

 

#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <signal.h>

void sig_handler(int num)
{
    printf("receive %d signal\n", num);
}

// 在休眠时间20s内,键入中断信号(ctrl+c)
int t_main() { int time = 20; signal(SIGINT, sig_handler); printf("enter sleep\n"); sleep(time); printf("sleep over\n"); return 0; }
/*

./xsleep
enter sleep
^Creceive 2 signal
sleep over

*/

int main()
{
    int time = 20;
    signal(SIGINT, sig_handler);
    printf("enter sleep\n");
    do{
        time = sleep(time);
    }while (time > 0);

    printf("sleep over\n");
    return 0;
}

/*

./xsleep
enter sleep
^Creceive 2 signal
^Creceive 2 signal
^Creceive 2 signal
^Creceive 2 signal
^Creceive 2 signal
^Creceive 2 signal
^Creceive 2 signal
sleep over

*/

 

转载于:https://www.cnblogs.com/guxuanqing/p/9187675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值