读书人

为何信号处理没有及时被处理呢?该怎么

发布时间: 2012-09-15 19:09:28 作者: rapoo

为何信号处理没有及时被处理呢?

C/C++ code
#include<stdio.h>#include<signal.h>#include<unistd.h>void Printf(int signo){  printf("received sigint\n");}void ALrm(int signo){  printf("received Alrm");}int main(){  signal(SIGINT,Printf);  alarm(10);  signal(SIGALRM,ALrm);  for(;;)    pause();  return 0;}

目的是测试在10秒后,能表示闹钟到了,可是一般执行的话基本死机一样,必须要按ctrl+c才能显示^Creceived Alrmreceived sigint我觉得应该是sigint先执行的啊,怎么是alrm呢?


[解决办法]
printf("received Alrm");
===>
printf("received Alrm\n");

[解决办法]
缓冲满,程序结束,还有显示flush,都会flush缓冲内容,细节可以上网搜搜。

读书人网 >UNIXLINUX

热点推荐