我尝试使用waitpid()函数,它需要三个参数,而我实现了一个下面 代码,我有一些错误,而不是waitpid()函数我使用wait()函数 用三个论点。它工作正常我不知道它是如何工作的。 任何人都可以解释一下吗?
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
main()
{
pid_t pid;
int p;
if((pid=fork())==0){
printf("Child present\n");
sleep(2);
printf("Child terminated\n");
_exit(0);
}
wait(pid,&p,0);
printf("parent terminated\n");
return 0;
}
但是wait函数的语法是
pid_t wait(int *status);
答案 0 :(得分:4)
根据手册页here,您需要添加<sys/types.h>
和<sys/wait.h>
个头文件才能使用wait()
[或waitpid()
]我不是看到你的代码。
您的编译器很可能使用了implicit declaration
wait()
{{1}}函数,以防万一
如果包含上述头文件和complie,则编译器应生成有关
的警告功能“等待”的参数太多了