相信自己,只有不想做的,没有做不到的。
分类: LINUX
2013-12-16 22:00:56
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);
}