Я пытаюсь научиться программированию, и я не понимаю, почему я не могу получить ребенка 2, чтобы печатать привет. Я также закрыл оба конца для чтения и записи для родителя, потому что я не хочу, чтобы родитель общался. Буду признателен за любую оказанную помощь.2 child process не отображает сообщение
int main()
{
int fd[2];
pid_t child_pid, child_pid1;
if (pipe(fd) < 0)
{
printf("Pipe error");
}
child_pid = fork(); // child 1
if (child_pid != 0)
{
printf("im child 1");
dup2 (fd[1], STDIN_FILENO);
printf("greetings");
child_pid1 = fork(); //child 2
if (child_pid1 != 0)
{
printf("im child 2");
dup2(fd[0], STDOUT_FILENO);
printf("hello");
}
else if (child_pid1 > 0) //Parent Code
{
close (fd[0]);
close (fd[1]);
}
}
return 0;
}
Я пробовал это, но он не работает – user3159107
Вы также должны удалить вызовы 'dup2'. – Devolus