linux暂停命令 pause_linux之定时器alarm,pause的使用

本文介绍了如何使用alarm定时器和signal处理函数实现进程的超时控制。通过设置SIGALRM信号,当pause()函数被调用时,如果在设定的时间内没有接收到信号,进程将被终止。示例代码展示了如何捕获SIGALRM信号并重新设置alarm,以在每次读取用户输入后重置计数器。
摘要由CSDN通过智能技术生成

alarm定时器,SIGALRM杀死进程

pause() 讲条用着挂起,等待信号到来位置。防止pause()信号杀死,

要用捕捉信号来接受信号,pause()等待用户发信号触发pause()'

#include #include #include #include

int count = 0;

void handler_signal(int signum)

{

if(count >= 3)

{

printf("Game over.\n");

exit(EXIT_SUCCESS);

}

count ++;

printf("Timeout %d.\n",count);

alarm(3);

}

int main(int argc, const char *argv[])

{

char buf[1024];

if(signal(SIGALRM,handler_signal) == SIG_ERR)

{

perror("Fail to signal");

exit(EXIT_FAILURE);

}

alarm(3);

while(1)

{

fgets(buf,sizeof(buf),stdin);

buf[strlen(buf) - 1] = '\0';

printf("buf : %s.\n",buf);

alarm(3);

count = 0;

}

exit(EXIT_SUCCESS);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值