boisheng -- Linux笔记
boisheng
全部博文(51)
linux(3)
oracle(5)
db2(5)
2011年(1)
2010年(3)
2009年(45)
2008年(2)
Decade20
hzzxsuni
lz小骆驼
yimian07
nuoyazho
illidan8
_ever_
ThankPUB
jackywgw
分类: LINUX
2009-08-18 12:55:10
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h> static void FC_exit(int sig){ printf("test [%d][%d] exit[%d]\n",getppid(),getpid(),sig); return ;} int main( void ){ struct sigaction act; sigset_t sigset; pid_t childpid; int status; /* set siguser1 funcation */ act.sa_handler = (void (*)()) FC_exit; sigemptyset (&act.sa_mask); act.sa_flags = 0; sigaction (SIGUSR1, &act, NULL); sigfillset (&sigset); sigdelset (&sigset, SIGUSR1); sigdelset (&sigset, SIGCHLD); if (sigprocmask (SIG_BLOCK, &sigset, NULL) < 0) { printf ("sigprocmask error"); exit (-1); } childpid = fork(); if ( -1 == childpid ) { printf( "fork()" ); return -1; } else if ( 0 == childpid ) { kill(getppid(),SIGUSR1); printf("child pid = %d child ppid = %d \n", getpid(),getppid()); sleep(1); return 0; } else { kill(childpid,SIGUSR1); printf( "parent pid = %d\n ppid = %d", getpid(),getppid() ); sleep(1); } return 0;}
上一篇:wait和waitpid函数
下一篇:db2 报1224错误的原因之一
登录 注册