1.信号:在Linux中信号也是最为古老的通信机制2.信号处理流程:(1)选择信号(2)发送信号(3)处理信号3.信号类型:(1)SIGHUP:终端发出的结束信号(2)SIGINT:键盘中断信号(3)SIGKILL:结束接收信号的进程(杀死进程)(4)SIGTERM:kill命令发出的信号(5)SIGSTOP:暂停进程(6)SIGCHLD:子进程停止或结束的时候用来通知父进程4.忽略信号:有些信号可以被忽略,但是SIGKILL和SIGSTOP不可忽略,他们是要终止和停止进程。5.执行用户希望的操作:内核响应信号的时候调用相应的用户函数。6.执行默认操作:大多是终止进程7.函数学习
6.1 发送信号
6.1.1 函数名Kill6.1.2 函数原形int kill(pid_t pid, int sig);6.1.3 函数功能向进程发送信号6.1.4 所属头文件<sys/types.h><signal.h>6.1.5 返回值成功:返回0失败:-16.1.6 参数说明Pid:大于0的时候指向接收信号的进程sig:指明要发送的信号(上述信号类型)
6.2 处理信号
6.2.1 函数名Signal6.2.2 函数原形typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);6.2.3 函数功能设置信号的处理方式(处理函数)6.2.4 所属头文件<signal.h>6.2.5 返回值成功:返回处理函数的指针失败:SIG_ERR6.2.6 参数说明Signum:指定要处理的信号Handler:处理信号的函数指针。可以取值:SIG_IGN,SIG_DFL,具体函数名8.补充:(1)kill函数式自己对自己或者自己对别人都可以,但是raise函数只能自己对自己发信号。(2)kill函数的pid:--》大于0:发送给PID指定的进程--》等于0:发送给同组进程--》小于0:发送给同进程组ID为|PID|的进程--》等于-1:发送给所有进程(3)raise原型:int raise(int sign0)(4)pause函数:使进程挂起,直到捕捉到信号,只有执行了一个信号处理函数以后,才会结束挂起。(5)atoi(char * str)将字符串转换为整数。9.接收信号的进程(1)设置信号处理方式(2)等待信号接收(信号捕捉),要用到PAUSE函数10.发送进程:发送进程
转载于:https://www.cnblogs.com/YanfeiHao/p/4433011.html
相关资源:2020灯塔大课堂第十三课观后感心得最新5篇_精选.doc