linux应用开发-信号编程

linux应用开发-信号编程


一 信号用于进程间通信

信号定义在/usr/include/asm/signal.h下

常见的信号有:

SIGKILL杀死进程

SIGSTOP暂停进程

SIGCHLD子进程停止或者结束时通知父进程


二 相关的函数


发送信号

函数名    kill

函数原形  int kill(pid_t pid, int sig)

函数功能  向任何的进程和进程组发送信号

所属头文件
#include <sys/types.h>
#include <signal.h>

返回值
成功返回0
失败返回-1

参数说明


pid > 0 pid参数指向接收信号的进程
pid = 0 信号被发送到进程组中的每一个进程
pid = -1 信号被发送到每一个有权限发送信号的进程,除了init进程
pid < -1 信号被发送到进程组中pid为-pid的进程 

sig指明要发送的信号


处理信号

函数名  signal

函数原形
typedef void (*sighandler_t)(int)
sighandler_t signal(int signal, sighandler_t handler) 
 
函数功能  设置信号的处理方式

所属头文件
#include <signal.h>

返回值
成功返回处理的函数指针
失败返回SIG_ERR


参数说明
signal 要处理的信号
Handler:
SIG_IGN:忽略这个信号,不处理
SIG_DFL:交给内核处理
用户自定义函数处理

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。