Linux编程(11)_信号
1 信号初步认识
1.1 特点
- 简单
- 携带的信息量少
- 使用在某个特定的场景中
1.2 信号的状态
信号优先级高, 进程先执行信号.
- 产生 由内核产生
- 键盘 – ctrl+c
- 命令 – kill
- 系统函数 – kill
- 软条件 – 定时器
- 硬件 – 段错误, 例除以0
- 未决信号 – 等待被处理
- 递达 – 已被处理
1.3 处理方式
忽略, 捕捉, 默认
1.4 信号的四要素
1.5 man文档查看信号
man 7 signal
1.6 阻塞信号集, 未决信号集
- 在pcb中, 不能直接操作
- 阻塞信号集 – 存放屏蔽的信号
- 未决信号集 – 待被处理的信号集合
2 信号相关函数
2.1 kill – 发送信号给指定进程
原型 int kill(pid_t pid, int sig);
2.2 raise – 给自己发信号
原型int raise(int sig)
2.3 abort – 给自己发送异常终止信号
3 信号集
4 信号捕捉
4.1 siganl
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
捕捉到信号, 则调用handler函数
4.2 sigaction
原型
int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact);
struct sigaction{void (*sa_handler)(int); //用这个函数指针就够了void (*sa_sigaction)(int, siginfo_t*, void*)sigset_t sa_mask; //在信号处理中, 临时屏蔽指定信号, sa_handler运行完之后才运行int sa_flags; //如果用sa_handler则赋值为0, //void (*sa_restorer)(void);
}
5 SIGCHLD信号
Linux编程(11)_信号相关推荐
- linux编程学习_您需要编程技能才能学习Linux吗?
linux编程学习 几个月前,我参加了edX提供的Linux入门课程. 这是一门18章的课程,其中包含大量阅读材料,一些视频以及随意测试知识水平的课程. 我写了关于前六章的内容,以及该课程的工作原理, ...
- Unix/Linux编程:SIGHUP信号
当会话首进程打开了一个控制终端之后它同时也成为了该终端的控制进程:当一个控制进程失去其终端连接后,内核会向其发送一个SIGHUP信号来通知它这一事实(还会发送一个SIGCONT信号以确保当该进程之前被 ...
- linux编程基础_第1篇 Linux系统编程 -多线程基础
进程 在理解线程之前,首先需要了解UNIX/Linux进程. 进程是由操作系统创建的,需要相当数量的"开销". 进程包含有关程序资源和程序执行状态的信息,包括:它是一个在随机访问内 ...
- Linux编程(10)_进程通信
1 进程通信相关概念 1 什么是IPC 进程间通信, InterProcess Communication 2 进程间通信常用几种方式 管道 (使用最简单) 信号 (开销最小) 共享内存/映射区 (无 ...
- Linux编程(9)_进程
1 进程相关概念 1 程序和进程 程序: 二进制文件, 占用的磁盘空间 进程: 启动的程序, 所有数据都在内存, 不仅占用内存空间, 也需要占用更多的系统资源, 例如CPU, 物理内存 2 并行和并发 ...
- Unix/Linux编程:SIGCHLD信号
子进程的终止属异步事件,父进程无法预知其子进程何时终止(即使父进程向子进程发送SIGKILL信号,子进程终止的确切时间还依赖于系统的调度:子进程下一次在何时使用CPU).父进程应该使用wait()或者 ...
- linux编程学习--SIG信号
SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. 登录Linux时,系统会分配给登录用 ...
- Linux编程(8)_文件IO
1 C库IO函数工作流程 2 Linux 系统函数 1.open/close 函数原型: int open(const char *pathname, int flags); int open(con ...
- Linux编程(1)_关于linux基础知识
1 文件类型与颜色/字母 绿色: 可执行文件,可执行的程序 红色:压缩文件或者包文件 蓝色:目录 白色:一般性文件,如文本文件,配置文件,源码文件等 浅蓝色:链接文件,主要是使用ln命令建立的文件 红 ...
最新文章
- 记一次lnmp经历 nginx 多个php版本支持配置
- java 枚举 或运算_Objective-C 枚举 中位运算 的使用
- 从零开始发布前端代码到服务器上_无服务器计算:让每行代码都能住上“经济适用房”...
- 【震惊】史上最牛的市场推广/营销
- Python3中 对local和nonlocal 关键字的改善认识(新手向)
- 相同字符串的string对象不等
- 深度学习之优化详解:batch normalization
- python配置环境是干啥的_Python配置环境
- Unity3D调用android方法(非插件方式)
- 【Golang】关于从切片中删除某个元素时会覆盖底层数组的说明
- Sharepoint 2010 备份与恢复 (二)
- CodeForces 453A Little Pony and Expected Maximum
- 利用beego开发网站(一)
- 学会这几项windows操作,轻松玩转自己的个人电脑
- 傲游浏览器 页面广告过滤 自定义 过滤规则 及使用方法 不定时更新
- commander、ora、chalk、inquirer使用
- SwitchyOmega使用教程
- c 语言指针数组长度,c如何获取指针数组的长度?
- 【杰理AC695X】7脚屏PWM控制亮度
- 《西法的刷题秘籍》电子书开放下载啦~
热门文章
- preg_replace的一些细节
- COM编程之四 引用计数
- 个人博客作业-week5-敏捷开发方法读后感
- 多线程编程(1) - 认识等待函数 WaitForSingleObject
- cocos2d-x3.10 适配 IPV6
- Welcome to Swift (苹果官方Swift文档初译与注解八)---53~57页(第二章)
- 百练 2972 确定进制 解题报告
- PeekMessage抓取消息,如何把每个消息都获取到呢?
- Unix/Linux 中的 shell 机制
- 解决Windows资源管理器右键菜单打开EditPlus容易导致资源管理器无响应问题