pause();
为linux内部挂起函数;
每个进程能够决定响应除SIGSTOP和SIGKILL的其信号,并且这两个信号不能被捕获或者忽略;
child进程继承parents的信号;
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
void catch_signal (int sign)
{
switch(sign)
{
case SIGINT:
printf("SIG");
exit(0);
}
}
int main (int arg,char *args[])
{
signal(SIGINT,catch_signal);//捕捉信号,并调用对应函数
int i=0;//首先运行死循环里面的代码,如果ctrl+c(SIGINT)来了,就进入子函数
while(1)
{
pause();//死等,不同于sleep();
printf("hello %d\n",i++);
}
return 0;
}
kill -s +想要发的信号 +目标进程号