有关进程,信号的问题,向各位大虾求教。。。
- C/C++ code
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; }
*问题:这个地方的pid不应该是子进程的pid值么,为什么可能为0呢???
在子进程里就是pid就是0
kill(ppid,SIGUSR2);你的ppid在哪定义的?
才发现,在你的上个贴子里我把问题搞清楚了,就是写时复制的问题。嘿嘿~
不知所以然 mark~~~