学习笔记9
第6章 信号和信号处理
摘要
本章讲述了信号和信号处理,介绍了信号和中断的统一处理;将信号和思维进程中断,将进程从正常执行转移到信号处理;解释了信号来源
信号和中断
“中断”是从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移到中断处理。
与发送给CPU的信号一样,信号是发送给进程的请求,将进程从正常执行转移到中断处理。
Unix/Linux中的信号处理
查看信号相关命令信息
kill -l
man 7 signal
信号产生——>信号处理——>捕捉信号
信号的来源:
来自硬件中断的信号
来自异常的信号
来自其他进程的信号
每个进程PROC都有一个32位向量,用来记录发送给进程的信号。在位向量中,用来记录发送给进程的信号。在位向量中,每一位(0位除外)代表一个信号编号。此外,它还有一个MASK位向量,用来屏蔽相应的信号。
信号处理函数
每个进程PROC都有一个信号处理数组int sig[32]。sig[32]数组的每个条目都指定了如何处理相应的信号,其中0表示DEFault(默认),1表示IGnore(忽略),其他非零值表示用户模式下预先安装的信号捕捉(处理)函数。
信号与异常
Linux中的IPC
IPC是指用于进程间通信的机制。在Linux中,IPC包含一下组成部分。
管道与FIFO
信号
System V IPC
POSIX消息队列
线程同步机制
套接字
声明
最简单的声明是变量
float f;
我们可以在申明符中加()
指针数组 数组指针 指针函数 函数指针
int *daytab[13] int (*daytab1)[13] int *comp() int (*comp1)()
函数返回值是指针(不能是局部变量) 函数名就是函数指针