sigaction函数

修改信号处理动作(通常在Linux用其来注册一个信号的捕捉函数)

int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);  成功:0;失败:-1,设置errno

参数:

act:传入参数,新的处理方式。

oldact:传出参数,旧的处理方式。                                                                                     【signal.c】

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_restorer:该元素是过时的,不应该使用,POSIX.1标准将不指定该元素。(弃用)

sa_sigaction:当sa_flags被指定为SA_SIGINFO标志时,使用该信号处理程序。(很少使用)

重点掌握:

① sa_handler:指定信号捕捉后的处理函数名(即注册函数)。也可赋值为SIG_IGN表忽略 或 SIG_DFL表执行默认动作

② sa_mask: 调用信号处理函数时,所要屏蔽的信号集合(信号屏蔽字)。注意:仅在处理函数被调用期间屏蔽生效,是临时性设置。

③ sa_flags:通常设置为0,表使用默认属性。

/***
signaction.c
***/
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<unistd.h>
#include<signal.h>void docatch(int signo)
{printf("%d signal is catch\n",signo);
}int main()
{int ret;struct sigaction act;act.sa_handler = docatch;sigemptyset(&act.sa_mask);sigaddset(&act.sa_mask,SIGQUIT);act.sa_flags = 0;ret = sigaction(SIGINT,&act,NULL);if(ret < 0 ){perror("sigaction error");exit(1);}while(1);return 0;
}

转载于:https://www.cnblogs.com/wanghao-boke/p/11333984.html

sigaction()函数相关推荐

  1. sigaction 函数,sigemptyset()函数,fcntl()函数,isatty()函数

    第一个函数:使用 sigaction函数: signal 函数的使用方法简单,但并不属于POSIX标准,在各类UNIX平台上的实现不尽相同,因此其用途受 到了一定的限制.而 POSIX标准定义的信号处 ...

  2. sigaction函数解析

    sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作). 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该 ...

  3. UNIX环境编程学习笔记(25)——信号处理进阶学习之 sigaction 函数

    lienhua34 2014-11-05 sigaction 函数跟 signal 函数一样,用于设置信号处理函数.此函数是用于取代 UNIX 早期版本使用的 signal 函数.UNIX 早期版本的 ...

  4. sigaction函数使用实例

    sigaction函数 (1)sigaction函数原型 sigaction函数用来查询和设置信号处理方式,它是用来替换早期的signal函数.sigaction函数原型及说明如下: sigactio ...

  5. Linux 进程学习(四)------ sigaction 函数

    转自:http://www.cnblogs.com/wblyuyang/archive/2012/11/13/2768923.html 使用 sigaction 函数:  signal 函数的使用方法 ...

  6. 信号的捕捉与sigaction函数

    一.内核如何实现信号的捕捉 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号.由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下: 1. 用户程序注册了SI ...

  7. 信号、signal 函数、sigaction 函数

    文章目录 1.信号的基本概念 2.利用 kill 命令发送信号 3.信号处理的相关动作 4.信号与 signal 函数 4.1 signal 函数示例一 4.2 signal 函数示例二 5.利用 s ...

  8. 信号的用法,signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数

    信号是与一定的进程相联系的.也就是说,一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如,一个进程可以忽略某些信号而只处理其他一些信号:另外,一个进程还可以选择如何处理信号.总之,这些总与特定 ...

  9. sigaction函数中关于sa_mask的解释

    使用 man sigaction 查看手册,对sa_mask的描述是这样的: sa_mask  specifies  a  mask  of  signals which should be bloc ...

  10. linux sigaction函数 sa_flags的值

    开始对sa_flags有疑问,网上搜到都是这一个程序,就复制来说事: 代码: 1 #include <stdio.h>   2 #include <stdlib.h>   3 ...

最新文章

  1. 谷歌宣布对外开放聊天机器人数据分析平台Chatbase
  2. 第四章第五章 环境搭建和24个命令总结
  3. MATLAB编程与应用系列-第2章 数组及矩阵的创建及操作(4)
  4. SpringMVC(二)——转发和重定向、处理前端请求的数据(普通字符串/对象)
  5. Python自动化开发学习22-Django上
  6. MFC框架机制详细论述
  7. 别只关注GPT3!细如发丝的模型更具现实杀伤力!
  8. html加上百度统计,vue单页面应用加入百度统计
  9. php ajax传值中文乱码问题,PHP Ajax JSON中文乱码各种问题解决办法
  10. Ubuntu18 安装yum
  11. bzoj 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场(DFS)
  12. python supervisor_Supervisor捕获不到python的Print
  13. android studio | openGL es 3.0增强现实(AR)开发 (5) GLSurfaceView浅解
  14. 直接选择排序和冒泡排序
  15. 吉林大学计算机数据中心排名,2018年度中国医院排行榜发布,吉大一院跻身50强!...
  16. 简单使用Search()函数
  17. html用手机什么软件能编写,目前编写一款简单的手机应用APP一般用什么编程语言?...
  18. 计算机知识竞赛赛制,知识竞赛活动规则
  19. 安卓商城选择商品规格
  20. 计算机安装系统有哪些东西,重装系统电脑里的东西还有吗|电脑重装系统后原来的东西还在吗...

热门文章

  1. 微信小程序常见问题集合(长期更新)
  2. android123 zhihuibeijing 新闻中心-新闻 页签 ViewPagerIndicator实现
  3. Sharepoint 2013 发布功能(Publishing features)
  4. java hashtable put_Java Hashtable put()方法与示例
  5. mysql定时清空表数据_Mysql实现定时清空一张表的旧数据并保留几条数据
  6. 大头贴计算机教程,推荐!自家电脑也能拍大头贴的秘密
  7. play 连接mysql_Play framework 2.x 连接mysql | 学步园
  8. windows如何调用Linux的API,Windows和Native API中的系统调用?
  9. PE 头文件 IMAGE_NT_HEADER
  10. arduino 机器视觉编程_万物皆可仿真的MATLAB/Simulink神奇在哪?解析如何将其应用于一整套机器人设计开发流程...