摘要:服务器 linux alarm函数简介 上代码: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <signal.h> int main(int
服务器
linux alarm函数简介
上代码:
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <signal.h> int main(int argc, char *argv[]) { alarm(5); sleep(20); printf(end!\\n); return 0; }
运行5秒后,内核向进程发出SIGALRM
信息,进程被终止,所以上述程序的结果是:
Alarm clock
当然,我们也可以人为定义信号处理函数,如下:
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <signal.h> void sig_alarm(int sig) { printf(sig is %d, sig_alarm is called\\n, sig); } int main(int argc, char *argv[]) { signal(SIGALRM, sig_alarm); // 注册alarm信号对应的函数 alarm(5); // 5秒后,内核向进程发出alarm信号, 执行对应的信号注册函数 sleep(20); printf(end!\\n); return 0; }
结果:
sig is 14, sig_alarm is called
end!
可以看到,内核向应用进程发出SIGALRM信号,执行对应的注册函数,而非杀死进程。
很简单,先说这么多。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对亿速云的支持。如果你想了解更多相关内容请查看下面相关链接
相关文章推荐
虚拟主机的专业参数,分别都是什么意思?2022-09-09
中非域名注册规则是怎样的?注册域名有什么用处? 2022-01-10
HostEase新年活动促销 美国/香港主机全场低至五折2021-12-28
HostGator下载完整备份教程分享2021-12-28
Flink中有界数据与无界数据的示例分析2021-12-28