§ 14. Оболочка
Задания
01Используя системные вызовы fork
, pipe
, dup
и execvp
, напишите программу которая перенправляет вывод одной команды на вход другой (как символ "|" в стандартной оболочке). Для этого в основном процессе создайте канал с помощью pipe
, который будет использован для перенаправления. Затем создайте дочерний процесс с помощью fork
, перенаправьте его стандартный вывод в канал с помощью dup
и запустите команду в дочернем процессе с помощью execvp
. Далее повторите те же действия для второго дочернего процесса, но в этот раз перенаправьте его стандартный ввод из канала. В конце дождитесь завершение дочерних процессов с помощью wait
.