Я хочу, чтобы родительские процессы (P1 и P2) ожидали завершения своих дочерних процессов (P3 и P4), используя waitpid ( в основном, родительские процессы могут завершаться только после завершения дочерних процессов ). Вот код ниже. Я португалец, извините за то, что в коде есть неанглийские sh слова.
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
int main()
{
int estado1, estado2;
pid_t p = fork();
pid_t k = fork();
if(p>0) //Execução do pai
{
waitpid(p, &estado1, 0); //Don't know how waitpid works that well either
waitpid(k, &estado2, 0);
printf("p=%d: PID = %d;\t", p, getpid());
// \t é para dar um tab (o que se usa nas indentações)
sleep(45);
printf("O processo pai terminou.\n");
exit(0);
}
else if(p==0) //Execução do filho
{
printf("p=%d: PID = %d;\t", p, getpid());
// \t é para dar um tab (o que se usa nas indentações)
printf("O processo filho terminou.\n");
exit(0);
}
else if(p<0)
{
printf("ERRO! p=%d\n", p);
exit(p);
}
}
Это то, что у меня есть, но я думаю, что это неправильно. Заранее спасибо. Редактировать: Спасибо zeroSpook за исправление моего текста:)