文章目录
一.信号的概念
信号是进程之间事件异步通知的一种方式,属于软中断
告诉有这样一个信号,但是这个信号的具体处理方式以及什么时候处理由进程决定,所以是软中断。
二.信号的种类
kill —l
可以罗列出所有信号(总共定义了62个信号)
没有32,33号信号
-
非实时信号(又称非可靠信号)
特点:信号可能会丢失 1~31 -
实时信号(又称可靠信号)
特点:信号不会丢失 33~64
三.信号的产生
1.硬件产生
kill命令向进程发送信号
kill -[信号值] [pid]
ctrl +c
:2号信号SIGINT
键盘按下ctrl +c
结束一个进程的时候,其实是进程收到了2号信号。2号信号导致进程的退出ctrl +z
:20号信号SIGTSTP
使用ctrl +z
会使一个程序进入暂停状态T;ctrl +|
2.软件产生
-
kill函数
int kill(pid_t pid,int sig);
pid:进程号,要给哪个进程发送信号,则填写哪个进程的进程号
sig:要发送信号的值
-
raise
int raise(int sig);
谁调用则给谁发送信号。该函数的实现也是调用kill函数
int raise(int sig){
return kill(gitpid(),sig);
}