开心过好每天!
2013年(23)
分类: LINUX
2013-08-05 18:46:50
信号是进程间通信机制中唯一的异步通信机制,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号可类比处理器收到一个中断请求。
常见信号:
SIGKILL:杀死进程,不能忽略
SIGSTOP:停止一个进程,不能忽略
SIGCHILD:当子进程状态发生改变,内核会向父进程发送此信号,进程默认忽略这个信号
SIGINT:ctrl+c
SIGPIPE:对管道的操作的时候,如果读端不存在,写管道会发送此信号
信号处理方式:
忽略信号 signal(signum,SIG_IGN);
捕捉信号:signal(signum,handler);
默认操作signal(signum,SIG_DFL);
用到的函数:
int kill(pid_t pid , int sigNum);//给指定的进程发送信号
int raise(int sigNum);//给自己发送信号
unsigned int alarm(unsigned int seconds);//设置定时器,定时时间到,内核向进程发送SIGALARM
int pause(void);//调用次函数回引起堵塞,当信号来临,并且设置了捕捉信号是,会将其唤醒,从pause后面开始执行