wait和waitpid

来源:互联网 发布:网络西西河 编辑:程序博客网 时间:2024/05/21 17:56

两者区别:

1、wait, 如果子进程没有退出,则是调用者阻塞,直到子进程退出;

2、waitpid,则存在有一个参数使得调用者不会存在阻塞;

 

演示代码:

 


        pid_t pd = 0;
        if((pd = fork()) == 0) //child process
        {sleep(1);
                printf("Child Process Exit ProcessID:%d/r/n",getpid());
        }else{
//              sleep(1);
                pid_t rpd = 0;

                int nstatus = 0;
                rpd = waitpid(pd,&nstatus,WNOHANG);
                printf("WaitPid Return ID:%d/r/n",rpd);
        }

 

将WNOHANG替换成WUNTRACED,则同wait一样,直到子进程退出来。

原创粉丝点击