日期:2014-05-16 浏览次数:20683 次
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; }