![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
alexey009 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
День добрый!
Есть 2 программы. Первая
Вторая
Данные программы не работают. Знаю в чем ошибка, но не знаю как исправить. 1. Нужно передать из 1 программы файловый дескриптор на чтение во 2 программу. Как это лучше сделать? 2. Ещё задачка, определить размер потока pipa, но это после решения 1 задачи. |
||||
|
|||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
man 2 dup2 (если я правильно понял, что нужно сделать)
ioctl и FIONREAD -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
Нужно сделать примерно следующее:
Основная программа: родитель записывает строку в поток информации pipe() строку, создает ребенка, ребенок вызывает вторую программу. Вторая программа: Получает от 1 программы необходимые данные, чтобы вывести записанную в поток pipe() строку, Выводит данную строку. Даже не слышал про такую функцию, а как нибудь проще это сделать нельзя? примерно так, как я пытался реализовать у себя в программе: выделить память под массив, который будет содержать файловый дескриптор, и далее передать этот массив второй программе через exec()
Хм.. Тоже что-то не знакомое. У меня была идея реализовать так: Передавать информацию через pipe определенного объема. далее посмотреть сколько реально передалось информации за 1 раз, это и будет размер потока pipe() |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
alexey009,
куда уж проще? ;) она специально для этого (перенаправление аотоков ввода-вывода) и предназначена
советую не заниматься велосипедостроительством -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
alexey009 |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
Пытаюсь разобраться, но как-то пока глухо.
Про передачу файлового дескриптора:
Что тут неверно? По поводу размера pipe()
Где косяк?)
Ну а все-таки(для более глубокого понятия работы pipe и прочего временами велосипедостроительство полезно), как реализовать тот механизм, что написал я? |
||||||
|
|||||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
ну во-первых, передавать так fd[0] нельзя, т. к fd[0] - int, а аргумент должен быть char* во-вторых, ты уже перенаправление сделал, 2.out будет читать из пайпа fd[0] советую научиться читать документацию ;)
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
alexey009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |