Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > fork(), exec(), передача файлого дескриптора |
Автор: alexey009 30.10.2009, 16:42 | ||||
День добрый! Есть 2 программы. Первая
Вторая
Данные программы не работают. Знаю в чем ошибка, но не знаю как исправить. 1. Нужно передать из 1 программы файловый дескриптор на чтение во 2 программу. Как это лучше сделать? 2. Ещё задачка, определить размер потока pipa, но это после решения 1 задачи. |
Автор: alexey009 30.10.2009, 19:08 | ||
Нужно сделать примерно следующее: Основная программа: родитель записывает строку в поток информации pipe() строку, создает ребенка, ребенок вызывает вторую программу. Вторая программа: Получает от 1 программы необходимые данные, чтобы вывести записанную в поток pipe() строку, Выводит данную строку. Даже не слышал про такую функцию, а как нибудь проще это сделать нельзя? примерно так, как я пытался реализовать у себя в программе: выделить память под массив, который будет содержать файловый дескриптор, и далее передать этот массив второй программе через exec()
Хм.. Тоже что-то не знакомое. У меня была идея реализовать так: Передавать информацию через pipe определенного объема. далее посмотреть сколько реально передалось информации за 1 раз, это и будет размер потока pipe() |
Автор: MAKCim 30.10.2009, 19:21 | ||||
alexey009,
куда уж проще? ;) она специально для этого (перенаправление аотоков ввода-вывода) и предназначена
советую не заниматься велосипедостроительством |
Автор: alexey009 30.10.2009, 20:08 | ||||||
Пытаюсь разобраться, но как-то пока глухо. Про передачу файлового дескриптора:
Что тут неверно? По поводу размера pipe()
Где косяк?)
Ну а все-таки(для более глубокого понятия работы pipe и прочего временами велосипедостроительство полезно), как реализовать тот механизм, что написал я? |
Автор: MAKCim 30.10.2009, 22:09 | ||||
ну во-первых, передавать так fd[0] нельзя, т. к fd[0] - int, а аргумент должен быть char* во-вторых, ты уже перенаправление сделал, 2.out будет читать из пайпа fd[0] советую научиться читать документацию ;)
|
Автор: alexey009 30.10.2009, 22:19 | ||
прошу прощения, туплю.. ![]() ![]() |