Перенаправление ввода и вывода дочернего процесса в C - PullRequest
3 голосов
/ 09 мая 2011

Я хочу написать программу на c, в которой я создаю несколько дочерних процессов и перенаправляю их входы и выходы на разные файловые дескрипторы. Я много гуглил, но не смог найти релевантные результаты. Пожалуйста, помогите.

Ответы [ 3 ]

3 голосов
/ 09 мая 2011

Начните с dup .Вам действительно нужно искать немного сложнее.Об этом много материала.

2 голосов
/ 09 мая 2011

Ответ зависит от вашей операционной системы.В UNIX-подобных системах вы используете dup() и dup2() для копирования файловых дескрипторов;каждый дочерний процесс будет наследовать текущий набор файловых дескрипторов от родительского, когда он exec -едан.Поэтому обычно вы fork делаете дочерний процесс, устанавливаете дескрипторы файлов 0, 1 и 2 на то, что вы хотите, чтобы они были, а затем exec() фактическую дочернюю программу.

1 голос
/ 09 мая 2011

Мой любимый forkpty .Эта функция разветвляет дочерний элемент и выдает файловый дескриптор в его стандартный ввод / вывод.Вы можете использовать exec после разветвления,

...