Я хочу написать программу на c, в которой я создаю несколько дочерних процессов и перенаправляю их входные и выходные данные в разные файловые дескрипторы. Я много искал в Google, но не смог найти подходящих результатов. Пожалуйста помоги .
Перенаправление ввода и вывода дочернего процесса в C
comment
См. stackoverflow.com/questions/584868/ < / а>
- person jweyrich   schedule 09.05.2011
comment
@jweyrich ваша ссылка не имеет отношения к этому вопросу
- person Haozhun   schedule 09.03.2012
Ответы (3)
Начните с dup. Вам действительно нужно поискать немного усерднее. Об этом много материала.
person
Duck
schedule
09.05.2011
Ответ зависит от вашей операционной системы. В UNIX-подобных системах вы используете dup()
и dup2()
для копирования файловых дескрипторов; каждый дочерний процесс наследует текущий набор файловых дескрипторов от родительского, когда он exec
-ed. Поэтому обычно вы fork
дочерний процесс, устанавливаете файловые дескрипторы 0, 1 и 2 такими, какими вы хотите их видеть, а затем exec()
фактическую дочернюю программу.
person
Ernest Friedman-Hill
schedule
09.05.2011
Поскольку использовались файловые дескрипторы фразы, я предполагаю, что это должен быть UNIX / Linux. Для полноты: в Windows используйте CreateProcess и посмотрите на последние три члена структуры STARTUPINFO.
- person cdarke; 09.05.2011
Мне больше всего нравится forkpty. Эта функция разветвляет дочерний элемент и предоставляет вам файловый дескриптор для его stdin / stdout. Вы можете использовать exec после разветвления,
person
eyalm
schedule
09.05.2011