Использование каналов в C: два дочерних процесса - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь смоделировать следующие команды "ls | sort -r> text" в C, используя каналы.

У меня есть два дочерних процесса, созданных с использованием fork (), и я использовал dup2 () дляизменение ввода / вывода

Моя проблема теперь правильно выполняет эти команды.Однако меня немного смущает вопрос о том, где должен выполняться каждый процесс.

Является ли это следующим образом: 1) «ls» будет выполняться в родительском объекте 2) «sort -r» выполняется в дочернем процессоре 1 3) "> text" выполнено в потомке 2

В настоящее время я пытаюсь запустить его, как показано ниже:

execlp("ls", "ls", NULL); // this in child 1 block of code
execlp("sort -r > text", "sort -r > text", NULL); // this in child 2 block

Любая помощь будет принята, спасибо!

...