【发布时间】:2016-05-19 12:05:02
【问题描述】:
以下代码没有错误,但我希望它应该在“5 秒(警报功能中的参数)”后自行终止。我想我误解了警报行为。
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/signal.h>
#define endl printf("\n")
int main(int argc, char *argv[])
{
int rc;
printf("Waiting for IOs");
getchar();
rc=alarm(5);
printf("value of rc is %d", rc);
endl;
}
根据定义,闹钟功能允许我们设置一个计时器,该计时器将在未来的指定时间到期。当计时器 到期后,会生成 SIGALRM 信号。如果我们忽略或没有捕捉到这个信号,它的默认动作是终止 过程
【问题讨论】:
-
您打印出调用
alarm()的返回值,然后您的main()返回(没有正确的返回值...),并且您的进程在发送警报信号之前结束。