您的位置:首页 > 其它

信号是unix中最古老的一种通信方式

2011-04-29 19:43 225 查看
用signal函数处理信号的小实例,两种注释,两种方法

信号集得函数还得慢慢写啊

#include <signal.h>

#include <stdio.h>

#include <stdlib.h>

#include <sys/types.h>

#include <unistd.h>

#include <wait.h>

/*void handler(int signum)

{

printf("===========\n");

wait(NULL);等待任何子进程

}*/

int main()

{

pid_t pid;

/*signal(SIGCHLD, handler);*/用函数处理子进程先退出的问题

pid = fork();

if(0 > pid)

{

perror("fork");

exit(-1);

}

else if( 0== pid)

{

printf("pid = %d %d\n", getpid(), pid );

raise(SIGABRT);//,子进程自己发送给自己进程结束,子进程先于父进程而亡

//成为僵尸进程

printf("child process exit ..... \n");

//sleep(1);//解决signal在子进程退出之前注册

exit(0);

}

else

{

//signal(SIGCHLD, SIG_IGN);//子进程中信号被忽略,以免引起僵尸进程

printf("pid = %d %d\n", getppid(), pid );

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: