当前位置: 技术问答>linux和unix
alarm() signal()的问题??
来源: 互联网 发布时间:2016-10-21
本文导语: #include #include #include #include #include #define MAXLILE 1000 static jmp_buf env_alrm; static void sig_alarm(int signo) { longjmp(env_alrm,1); } int main(int argc,char * argv[]) { int n,m; char line[MAXLILE]; if(signal(SIGALRM,sig_alarm)==SIG_ER...
#include
#include
#include
#include
#include
#define MAXLILE 1000
static jmp_buf env_alrm;
static void sig_alarm(int signo)
{
longjmp(env_alrm,1);
}
int main(int argc,char * argv[])
{
int n,m;
char line[MAXLILE];
if(signal(SIGALRM,sig_alarm)==SIG_ERR)
printf("errorn");
if(setjmp(env_alrm)!=0)printf("read timeoutn"); //不输入数据 10秒过后 alarm(10)发出信号 又跳回这行
m=alarm(10); //接着应该再一次运行alarm(10)再什么也不输 在等待10秒
//printf("%dn",m); //应该alarm(10)再次发出信号 而为么这次signal 没有运行
if((n=read(STDIN_FILENO,line,MAXLILE))