我不明白为什么函数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”
答案 0 :(得分:0)
头文件:unistd.h
不包含wait()
的原型。
该原型通过头文件组合公开:
#include <sys/types.h>
#include <sys/wait.h>`