有关进程,信号的有关问题,向各位求教。

有关进程,信号的问题,向各位大虾求教。。。

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~~~

有关进程,信号的有关问题,向各位求教。

相关文章:

你感兴趣的文章:

标签云: