Я попытался с функцией waitpid(), он принимает три аргумента, в то время как я реализую код ниже , у меня были некоторые ошибки, вместо функции waitpid() я использовал функцию wait() с тремя аргументами. он работает правильно, я не понимаю, как он работает. Любой может это объяснить ??Почему функция 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;
}
Но синтаксис для функции ожидания является
pid_t wait(int *status);
Ваш код содержит ошибку. Исправьте ошибку, и тайна исчезнет. –