当前位置: 技术问答>linux和unix
请教一个alarm(0)的问题
来源: 互联网 发布时间:2016-06-14
本文导语: 本帖最后由 cir2633 于 2009-06-28 00:29:38 编辑 下面这段程序是书上写的,作用是若10S内有输入,程序正常返回,若没有输入,则进入sgig_alrm函数; 我不太理解那个alarm(0),按书上的理解,这个alarm(0)的意思是取消之前的alarm闹钟,不...
我不太理解那个alarm(0),按书上的理解,这个alarm(0)的意思是取消之前的alarm闹钟,不返回SIGALRM;
我是这样理解的 :这段代码先alarm(10);然后走完两个if语句,这用不了10秒吧 ?然后就到了alarm(0),取消了之前的alarm(10)
这段代码我的理解是否有问题 ?
#define MAXLINE 4096
int main(void)
{
int n;
char line[MAXLINE];
/*设定超时时限*/
alarm(10);
/*信号注册函数*/
if(signal(SIGALRM, sig_alrm) == SIG_ERR)
perror("signal");
if((n = read(STDIN_FILENO, line, MAXLINE))