首页 > 解决方案 > 为什么'wait'函数总是返回-1?

问题描述

我不明白为什么函数等待总是返回 -1 而不是子进程 pid

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main (void) {
    pid_t pid;
    int status;
    pid = fork ();
    if (pid < 0) {
        perror("fork");
        exit(2);
    }
    if ( pid == 0 ) {
        printf ("I am the child\n");
        exit(0);
    }
    else if(pid > 0){
        printf ("I am the parent, i'll wait\n");
        pid = wait(&status);
        printf ("I waited the child: %d\n"
                , pid);
    }

    exit(0);
}

预期“我等了孩子:1234”实际“我等了孩子:-1”

标签: cxcodeprocessforkwait

解决方案


头文件:unistd.h不包含wait().

该原型通过头文件组合公开:

#include <sys/types.h>
#include <sys/wait.h>`

推荐阅读