10.1 引言

信号是软件中断.很多比较重要的应用程序都需要处理信号.信号提供一种处理异步时间的方法,例如,终端用户键入中断键,会通过信号机制停止一个程序,或及早终止管道中的下一个程序.

10.2 信号概念

首先每个信号都有一个名字.这些名字都是以SIG开头.例如,SIGABRT是夭折信号,当进程调用abort函数是产生这种信号.

10.3 函数signal

UNIX系统信号机制最简单的接口是signal函数
#include <signal.h>
void (*signal(int signo, void (*func)(int)))(int);

signo参数是一下图中的信号名.func的值是常量SIG_IGN,常量SIG_DFL或者当接到此信号后要调用的函数的地址.SIG_IGN向内核表示忽略此信号(SIGKILL和SIGSTOP不能忽略).SIG_DFL标示接到信号后的动作是系统默认动作

程序启动
当执行一个程序时,所有信号的状态都是系统默认或者忽略
进程创建
当一个进程调用fork时,其子进程集成父进程的信号处理方式

10.4 不可靠的信号

不可靠再这里指:信号可能会丢失,一个信号发生了,但进程却可能一直不知道这一点

10.5 中断的系统调用

10.6 可重入函数

进程捕捉到信号并对其进行处理时, 进程正在执行的正常指令序列就被信号处理程序临时中断,它首先执行该信号处理程序中的指令.

10.7 SIGCLD语义

10.8 可靠信号术语和语义

10.9 函数kill和raise

kill 函数将信号发送给进程或进程组,raise函数则允许进程相自身发送信号
#include<signal.h>
int kill (pid_t pid, int signo);
int raise (int signo);

UNIX环境高级编程之第10章:信号相关推荐

  1. UNIX环境高级编程之第4章:文件和文件夹-习题

    4.1 stat函数是尾随符号链接的,所以用stat替换lstat不会显示符号链接的信息 4.2 在一个目录下先再shell中输入umask shell进程再进行创建文件的操作.其权限抖都会被屏蔽 4 ...

  2. unix环境高级编程之 read与write 函数详解

    学习记录:unix环境高级编程之 read 与write  函数详解 备注:本博文非本人所写,本人觉得此文讲的非常地道通俗易懂,所以摘录在此以方便以后再次查看 read函数从打开的设备或文件中读取数据 ...

  3. UNIX环境高级编程源码

    UNIX环境高级编程源码 一.下载源码 利用wget命令下载源码,源码地址http://apuebook.com/src.3e.tar.gz 可以在服务器的根目录下创建文件夹,mkdir 1.mkdi ...

  4. UNIX 环境高级编程总结——第五章 标准I/O 库

    5.1 流和 FILE 对象 对于标准 I/O 库,它们的操作则是围绕流(stream)进行的. 当打开一个流时,标准 I/O 函数 fopen 返回一个指向 FILE 对象的指针. 为了引用一个流, ...

  5. 《Unix环境高级编程》Note——第一章基础知识

    文章目录 第一章 Unix基础知识 1.引言 2.Unix体系结构 3.登录 4.文件和目录 5.输入和输出 6.程序和进程 7.出错处理 8.用户标识 9.信号 10.时间值 11.系统调用和库函数 ...

  6. UNIX环境高级编程(屏幕打印和inet_ntoa输出异常问题)

    一.来回在屏幕和文件之间打印 在网上没找到在屏幕和文件来回打印的方法,翻了下UNIX环境高级编,里面有个freopen用于在一个指定的流上打开一个指定的文件,如果要将标准输出打印到文件,需要调用该函数 ...

  7. python flask高级编程之restful_('Python Flask高级编程之RESTFul API前后端分离精讲',),全套视频教程学习资料通过百度云网盘下载...

    资源详情 r n t某课网好评度100%的Python Flask高级编程之RESTFul API前后端分离精讲 r n t t t第1章 随便聊聊 r n t t t聊聊Flask与Django,聊 ...

  8. 《UNIX环境高级编程(第3版)》——1.7 出错处理

    本节书摘来自异步社区<UNIX环境高级编程(第3版)>一书中的第1章,第1.7节,作者:[美]W. Richard Stevens , Stephen A.Rago著,更多章节内容可以访问 ...

  9. unix环境高级编程 pdf_UNIX系统编程宝典,每一本都值得程序员珍藏

    这几本UNIX系统编程宝典,重印无数次,几代程序员都视如珍宝的几本书,小编在出版圈里快十年了,见证了这本书图灵版.异步社区版的出版.营销,对这套书倾注了一定的感情.今天继续分享给你们,好书总会有人还不 ...

  10. unix环境高级编程基础知识之第二篇(3)

    看了unix环境高级编程第三章,把代码也都自己敲了一遍,另主要讲解了一些IO函数,read/write/fseek/fcntl:这里主要是c函数,比较容易,看多了就熟悉了.对fcntl函数讲解比较到位 ...

最新文章

  1. Java 最常见的 10000+ 面试题及答案整理:持续更新
  2. Mrtg搭建流量监控服务器
  3. Github for Windows使用图文教程
  4. 安装 Python 包时解决 Microsoft visual c++ 14.0 is required 问题
  5. 2017年SEO行业的前景以及未来趋势
  6. senet-运行和结构篇
  7. 赛门铁克linux安装教程,Symantec赛门铁克14.2版本服务端安装教程及配置教程(三)...
  8. python编程入门第一课教案_python编程从入门到实践 第一课:输入输出
  9. Hibernate插入、查询、删除操作 HQL (转)
  10. 河北工业大学 高等数学学习资料分享(课件,录屏,教材,答案)
  11. prometheus grafana sql 常用函数参数
  12. STM32+ESP8266+MQTT连接阿里云服务器(四、STM32连接阿里云平台)
  13. textarea统计字数
  14. 增加 swap 空间
  15. nextdate函数 c语言,【Nextdate|Nextdate函数的黑盒测试】
  16. twitter全自动发推_如何阻止Twitter视频自动播放
  17. 练习:数字时钟(Python 自定义类)
  18. ARM base instruction -- cmn
  19. Opengl ES之PBO
  20. 【新学期,新FLAG】

热门文章

  1. [高级]性能分析工具TraceView
  2. phpMyAdmin出现错误 Access denied for user 'root'@'localhost' (using password: NO)
  3. 转 iOS socket
  4. graphviz安装及使用
  5. P1955 [NOI2015]程序自动分析
  6. 【iOS越狱开发】如何将应用打包成.ipa文件
  7. HDU 5726 GCD
  8. android省市区三级联动案例:(一)运行效果
  9. 定义CPU阀值(转)
  10. macOS安装过程中“应用副本已损坏”的解决方案