Linux程序退出时的信号捕获及处理
2012-04-13 14:48
405 查看
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <signal.h>
// 程序退出时的函数操作 void test(int n,struct siginfo *siginfo,void *myact) { printf("signal number:%d\n",n);/** 打印出信号值 **/ printf("siginfo signo:%d\n",siginfo->si_signo); /** siginfo结构里保存的信号值 **/ printf("siginfo errno:%d\n",siginfo->si_errno); /** 打印出错误代码 **/ printf("siginfo code:%d\n",siginfo->si_code); /** 打印出出错原因 **/ exit(0); } int main(void) { /** install signal use sigaction **/ struct sigaction act; sigemptyset(&act.sa_mask); /** 清空阻塞信号 **/ act.sa_flags=SA_SIGINFO; /** 设置SA_SIGINFO 表示传递附加信息到触发函数 **/ act.sa_sigaction=test; if(sigaction(SIGINT,&act,NULL) < 0) { printf("install signal error\n"); } while(1) { sleep(1); printf("wait for the signal\n"); } }
相关文章推荐
- Linux 程序信号处理
- Linux下信号处理与多线程程序
- 如何在linux程序中捕获异常信号
- linux网络通讯程序无提示自动退出——SIGPIPE信号退出
- Python的信号处理与程序退出
- linux下 c中怎么让才能安全关闭线程 和 linux线程退出时执行的程序(线程清理处理程序)简单例子
- linux后端服务程序之信号处理
- 如何在go程序中捕获退出信号
- linux线程退出时执行的程序(线程清理处理程序)简单例子
- linux网络通讯程序无提示自动退出——SIGPIPE信号退出
- Linux C++ 处理 Kill 信号、Ctrl+C信号,便于安全退出
- 子进程中调用system命令执行openssl后,程序退出了,原因是SIGCHLD信号的处理
- linux 捕获信号处理中遇到的死锁
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - Linux常见信号及处理 分类: Linux --- 应用程序设计 2014-11-08 11:54 68人阅读 评论(0) 收藏
- Linux下信号处理与多线程程序
- Linux Linux程序练习十三(信号阻塞,捕获)
- 捕获SIGUER1和SIGUSR2的简单程序 | 信号处理程序 | signal函数
- Linux 脚本和程序对SIGINT的处理方案,脚本通过kill给程序传递信号
- [linux]信号的捕获和处理
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - Linux常见信号及处理