Linux系统sigaction函数的使用示例
来源:互联网 发布:js清空select选中的值 编辑:程序博客网 时间:2024/05/21 16:57
一、函数原型
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
signum参数指出要捕获的信号类型,act参数指定新的信号处理方式,oldact参数输出先前信号的处理方式(如果不为NULL的话)。
二、 struct sigaction结构体介绍
struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void);}
- sa_handler此参数和signal()的参数handler相同,代表新的信号处理函数
- sa_mask 用来设置在处理该信号时暂时将sa_mask 指定的信号集搁置
- sa_flags 用来设置信号处理的其他相关操作,下列的数值可用。
- SA_RESETHAND:当调用信号处理函数时,将信号的处理函数重置为缺省值SIG_DFL
- SA_RESTART:如果信号中断了进程的某个系统调用,则系统自动启动该系统调用
- SA_NODEFER :一般情况下, 当信号处理函数运行时,内核将阻塞该给定信号。但是如果设置了 SA_NODEFER标记, 那么在该信号处理函数运行时,内核将不会阻塞该信号
三、示例代码
#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <signal.h>int main(){ struct sigaction newact,oldact; /* 设置信号忽略 */ newact.sa_handler = SIG_IGN; //这个地方也可以是函数 sigemptyset(&newact.sa_mask); newact.sa_flags = 0; int count = 0; pid_t pid = 0; sigaction(SIGINT,&newact,&oldact);//原来的备份到oldact里面 pid = fork(); if(pid == 0) { while(1) { printf("I'm child gaga.......\n"); sleep(1); } return 0; } while(1) { if(count++ > 3) { sigaction(SIGINT,&oldact,NULL); //备份回来 printf("pid = %d\n",pid); kill(pid,SIGKILL); //父进程发信号,来杀死子进程 } printf("I am father .......... hahaha\n"); sleep(1); } return 0;}
0 0
- Linux系统sigaction函数的使用示例
- sigaction函数的使用
- sigaction函数的使用
- sigaction函数的使用
- sigaction函数的使用
- APUE--sigaction函数的使用
- linux sigaction函数(注册信号)使用
- Linux 系统调用 sigaction 的用法
- linux sigaction函数 sa_flags的值
- linux进程---sigaction 函数
- linux系统编程之信号(四):信号的捕捉与sigaction函数
- linux系统编程之信号(四):信号的捕捉与sigaction函数
- linux系统编程之信号(四):信号的捕捉与sigaction函数
- linux系统编程之信号(四):信号的捕捉与sigaction函数
- sigaction函数使用实例
- 使用 sigaction 函数
- sigaction函数使用实例
- linux 信号的捕捉和发送函数的简单使用:sigaction()和sigqueue()
- Numinput(自定义数字输入框)
- 看懂信息检索和网络数据挖掘领域论文的必备知识总结
- 源码项目与框架
- UVA_11021 Tribles(递推)
- Search in Rotated Sorted Array
- Linux系统sigaction函数的使用示例
- 2015多校联合第二场 5305 friends 深搜
- canvas
- 第3回老弟,这些工具你会使不?
- 欢迎使用CSDN-markdown编辑器
- 作为程序员最应该投资的是这十件事
- 插入排序实现报告(个人版)
- Android调用SQL Server2008存储过程单例模式
- poi