Я пишу свою собственную оболочку, и у меня возникла проблема с конвейеризацией процессов.
Я правильно работаю над двумя процессами, такими как:
ls -l | sort -r
Нокогда у меня есть три команды, я не знаю, что делать.
У меня есть три метода:
run_first:
dup2(pfd[1], 1);
close(pfd[0]);
execvp(cmd[0], cmd);
run_mid:
dup2(pfd[1], 1);
dup2(pfd[0], 1);
execvp(cmd[0], cmd);
и run_last:
dup2(pfd[0], 0);
close(pfd[1]);
execvp(cmd[0], cmd);
perror(command_list[i][0]);
Это основные важные части, но я не могу реализовать свою логику в этих трех методах,
Я хочу, чтобы выходные данные run_first должны были вводитьсяrun_mid и я хочу передать вывод run_mid в run_last.