为什么“等待”功能总是返回-1?

时间:2019-08-27 09:13:25

标签: c xcode process fork wait

我不明白为什么函数wait总是返回子进程pid的-1 intead

#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”

1 个答案:

答案 0 :(得分:0)

头文件:unistd.h不包含wait()的原型。

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

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