Linux 软件编程学习第十一天

1.管道:

进程间通信最简单的形式

2.信号:

内核层和用户层通信的一种方式

1.信号类型:

  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

可以从终端输入:

SIGINT ctrl+c

SIGQUIT ctrl+\

SIGTSTP ctrl+z

9号和19号信号

SIGKILL 进程结束

SIGSTOP 进程挂起

SIGSEGV:表示内核操作内存错误

SIGUSR1:用户可以使用该信号实现通信

SIGCHLD:表示该进程有一个子进程结束了

SIGPIPE:表示管道破裂

SIGIO:表示IO事件发生

2.信号的处理方式:

1.缺省:

按照默认的方式处理信号

2.忽略:

不处理信号

3.捕捉:

按照指定的方式处理信号

9号SIGKILL和19号信号SIGSTOP不能被忽略和捕捉

3.函数接口:

1.signal

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);

功能:

切换信号的处理方式

参数:

signum:信号的编号

handler:信号对应的处理方式

SIG_IGN 忽略信号

SIG_DFL 缺省信号处理方式

自定义的函数的函数名(指向函数的指针)

返回值:

成功返回之前注册的信号的处理方式

失败返回SIG_ERR

4.定时器:

alarm

unsigned int alarm(unsigned int seconds);

功能:

间隔seconds秒后给进程发送SIGALRM信号

参数:

seconds:间隔秒数

返回值:

成功返回上次定时剩余的秒数

失败返回-1

5.kill

int kill(pid_t pid, int sig);

功能:

向进程发送信号

参数:

pid:进程id

sig:信号值

返回值:

成功返回0

失败返回-1

相关推荐
我要吐泡泡了哦10 分钟前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫12310 分钟前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
小安运维日记12 分钟前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
limingade1 小时前
手机实时提取SIM卡打电话的信令和声音-新的篇章(一、可行的方案探讨)
物联网·算法·智能手机·数据分析·信息与通信
贾saisai2 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫2 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
2401_858286112 小时前
52.【C语言】 字符函数和字符串函数(strcat函数)
c语言·开发语言
CoolTiger、3 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
jiao000014 小时前
数据结构——队列
c语言·数据结构·算法
m0_741768854 小时前
使用docker的小例子
运维·docker·容器