小编Ala*_*uny的帖子

wait(NULL) 究竟是如何工作的?

如果我使用wait(null),并且我知道(肯定)子wait(null)进程会在我们到达父进程之前完成(退出),那么父进程是否会wait(null)阻塞?我的意思是,wait()不会得到任何信号吧?

int main() {
   int pipe_descs[2] ;
   int i, n, p ;

   srand(time(NULL(  ;
   pipe(pipe_descs) ;

   for (i = 0; i < 2; i++) {
           pid_t status = fork() ;

           if (status == 0) {
                 n = rand() % 100;
                 p = (int) getpid() ;

                 write(pipe_descs[1],  &n,  sizeof(int)) ;
                 write(pipe_descs[1],  &p,  sizeof(int)) ;
                 exit(0) ;
            }
           else {
               read(pipe_descs[0],  &n,  sizeof(int)) ;
               read(pipe_descs[0],  &p,  sizeof(int)) ;
               printf(" %d %d\n", n, p) ; …
Run Code Online (Sandbox Code Playgroud)

c fork wait

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

c ×1

fork ×1

wait ×1