Linux系统编程——信号
Linux系统编程——信号
kill函数
int kill(pid_t pid, int sig);
所需头文件: signal.h
功能:向进程号为pid的进程发送信号sig
pid:进程id
sig:要发送的信号
返回值:成功返回0,失败返回-1
raise函数
int raise(int sig);
所需头文件:signal.h
功能:向当前进程发送信号sig
sig:要发送的信号
返回值:成功返回0,失败返回-1;
alarm函数
unsigned int alarm(unsigned int second)
所需头文件:unistd.h
功能:设置一个定时器,当定时器时间到时,内核就向进程发送SIGALARM信号。
second:定时时间,单位秒
返回值:成功如果调用此alarm前,进程中已设置了闹钟时间,则返回上一个闹钟时间的剩余时间,否则返回0,出错返回-1。
注意事项:
1. 若调用多个alarm函数,只有最后一个有效。
pause函数
int pause(void);
所需头文件:unistd.h
功能:将进程挂起,直到收到信号为止。
返回值:-1,并设置errno。
signal函数
typedef void(*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
所需头文件:signal.h
功能:将获取信号signum后进程的处理指定为handler
signum:指定信号
handler:
-
SIG_IGN:忽略该信号 -
SIG_DFL:采用系统默认方式处理该信号 -
自定义的信号处理函数指针
返回值:成功返回设置之前的信号处理方式,失败返回-1。
