进程间通信(IPC机制):信号

信号:进程间通知机制(不携带数据)---异步通知机制

信号:软中断

  1. SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

  2. SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

  3. SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

  4. SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

  5. SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

  6. SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

  7. SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

  8. SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

  9. SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

  10. SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

  11. SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

  12. SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

  13. SIGRTMAX-1 64) SIGRTMAX

2) SIGINT:ctrl + c

让一个进程被打断

3) SIGQUIT:ctrl + \

让一个进程结束

9) SIGKILL:

强制让一个进程结束

11)SIGSEGV:

让一个进程结束(段错误)

13)SIGPIPE:

让一个进程结束(管道破裂)

14)SIGALRM:

让一个进程结束(定时时间到达)

17)SIGCHLD:

子进程结束时发送给父进程

18)SIGCONT:

让停止态的进程继续执行

19)SIGSTOP:

让运行态的进程进入停止态(暂停)强制停止

20)SIGTSTP:

ctrl + z 让进程进入暂停态,后台进程

来自终端的停止信号

10 SIGUSR1

12 SIGUSR2

专门预留给程序员使用的未定义信号。

1.注册信号:

信号处理方式:

  1. 忽略 :不处理

  2. 缺省 :按照操作系统默认方式处理

  3. 捕获 :按照自定义方式处理

cpp 复制代码
sighandler_t signal(int signum, sighandler_t handler);
功能:注册一个信号
参数:
        signum :要注册的信号的编号
        handler:对信号的处理方式
            SIG_IGN : 按忽略方式处理
            SIG_DFL :按照缺省方式处理
            自定义的函数:按照捕获方式处理
返回值:
    成功:handler
    失败:SIG_ERR

注意:

  1. 如果信号不注册,自动按照默认(缺省)方式处理;大多数信号默认处理方式是结束一个进程。

  2. 信号尽量早注册。

2.发送信号

kill();*

cpp 复制代码
int kill(pid_t pid, int sig);
功能:给进程发送一个信号
参数:
    pid:接收信号的进程
    sig:信号的编号
返回值:
    成功:0
    失败:-1

3.pause

void pause(void);

功能:挂起一个进程(让进程进入休眠)

可以通过一个信号唤醒pause挂起的进程,但是这个信号必须被捕获

4.alarm

unsigned int alarm(unsigned int seconds);

功能:定时若干秒之后发送一个SIGALRM的信号

相关推荐
codigger3 小时前
服务器又卡了?一篇讲透 Linux 性能排查(基础四件套 + perf/strace/火焰图)
linux·后端·性能优化
顶点多余3 小时前
9.18 面试题总结 --- 绿盟
linux·面试
^Rocky3 小时前
IT 疑难杂症诊疗室:复杂技术问题解决实录
运维·bug
Ivanqhz3 小时前
Slope One 算法详解:与矩阵分解、共现矩阵的异同
java·服务器·网络·人工智能·深度学习
挖掘狂人3 小时前
当生产环境"变慢",我用这套 perf + strace 30 分钟定位瓶颈
linux·运维·性能优化
Wang's Blog4 小时前
Java 项目实战: 外卖平台-数据库环境搭建与十一张表结构解析
java·服务器·redis
王六米。4 小时前
RAG知识库建设 文档解析 切分与索引如何衔接
服务器·前端·网络·企业数字化转型·智钳智能盒子
wuyk5555 小时前
【Socket 进阶之路】第 7 章 IO 多路复用 select & poll 完整实战|多 fd 监听、超时等待、优缺点横向对比
服务器·开发语言·网络·数据库·物联网
傲世仙尊5 小时前
IO流起步-从fopen到文件描述符fd
linux
Rabitebla5 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法