日期:2014-05-16 浏览次数:20865 次
pid_t pid;
void handle(int signo){
/*****************************问题所在********************************
*多执行几次pid会出现不同的结果0,或者子进程的pid
*一个是fork返回到子进程的值,一个是返回到父进程的值
*问题:这个地方的pid不应该是子进程的pid值么,为什么可能为0呢???
*请各位指教。
***********************************************************************/
printf("Current time:%d\n",pid);
kill(pid,SIGUSR1);
}
int main(){;
int i;
int stat;
signal(SIGCLD,SIG_IGN);
signal(SIGUSR1,SIG_IGN);
signal(SIGUSR2,handle);
pid=fork();
if(pid<0){
perror("fork");
exit(-1);
}
else if(pid==0){
kill(ppid,SIGUSR2);
pause();
exit(0);
}
wait(&stat);
return 0;
}