- 论坛徽章:
- 0
|
代码如下,子进程调用execl(),主程序调用kill()来给他发信号,但是它却不能接收信号,kill()函数返回0 ,errno返回13
#define EACCES 13 /* Permission denied */- int main()
- {
- int pid;
- int stat;
- signal( SIGINT , SIG_DFL );
- signal( SIGHUP , SIG_DFL );
- pid = vfork();
- if( pid< 0 )
- exit(0);
- if( pid >; 0 )
- {
- sleep(5);
- printf( "kill children\n" );
- kill( pid , SIGHUP );
- sleep(5);
- printf( "parent kill self\n" );
- exit(0);
- }
- /*
- setsid();
- chdir("/");
- umask(0);
- if( setpgrp() < 0 )
- {
- return -1;
- }
- */
- execl( "/u/bin/program" , "program" , "33","1111" , (char *)0 );
- exit(0);
- }
复制代码 |
|