首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

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

2012-09-15 
为何信号处理没有及时被处理呢?C/C++ code#includestdio.h#includesignal.h#includeunistd.hvoid Pr

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

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缓冲内容,细节可以上网搜搜。

热点排行