信号

来源:互联网 发布:linux listen参数 编辑:程序博客网 时间:2024/04/30 10:48
#include<stdio.h>#include<stdlib.h>#include<signal.h>/*信号处理函数*/void my_func(int signo){if(signo==SIGBUS){printf("Child process: I have get SIGBUS\n");}}int main(int argc, char * argv[]){/*创建子进程*/pid_t pid;pid=fork();if(pid<0){printf("fork error!\n");return 0;}else if(pid==0){/*子进程*//*指定信号处理函数*/signal(SIGBUS, my_func);/*等待信号*/pause();/*信号处理函数执行完以后结束进程*/exit(0);}else{/*父进程*//*让父进程睡眠,确保子进程已经指定了信号处理函数*/sleep(3);/*向子进程发送信号*/kill(pid, SIGBUS);printf("Parent process: send SIGBUS\n");/*等待子进程执行结束*/wait();exit(0);}return 0;}