|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
18.06.2010, 15:43 | #1 |
Регистрация: 18.06.2010
Сообщений: 3
|
Нужно приткнуть dup2() в правильное место в программе
Добрый день!
В аттаче ff7.zip код правильно работающей программы. В программе используется односторонняя связь между родительским процессом и дочерним через пайп (т.е. данные от родителя передаются потомку через пайа) имитирует что-то вроде шелла (исполнитель команд). В коде представленном ниже находится абсолютно аналогичная программа (листинг представлен ниже), в которой используется двусторонняя связь родителя с потомком. То есть родительский процесс передает данные дочерниму процессу через пайп, а дочерний процесс возвращает данные (результат) родителю через другой пайп. Проблема в том, что никак не получается реализовать ТАКОЙ ЖЕ интерфейс в программе (листинг представлен ниже), как и в ff7. Для этого, я так понимаю нужно просто кое-где воткнуть соответствующий dup2() (наверное 2 штуки). Собственно вопрос к аудитории: КУДА? Пожалуйста помогите разобраться!! Итак, разархивируем ff7.zip. Компилируем, например так: $ gcc ff7.c -o ff7 Запускаем: $ ./ff7 Открываем новый терминал/консоль и командуем, например следующее: $ echo pwd > input.txt Наблюдаем за результатом в первой консоле. Интерфейс взаимодействия с программой ниже абсолютно аналогичный. Нужно достичь АБСОЛЮТНО такого же взаимодействия и интерфейса в программе ниже, путем правильного использования dup2()... Код:
P.S. Если компилите из-под никсов, понадобится заменить cmd на ваш шелл (csh/bash...): Код:
Последний раз редактировалось 0xDEFACE; 18.06.2010 в 16:14. |
18.06.2010, 18:29 | #2 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Ну, сама передача через пайпы пашет.
dup2 - это маппинг одного дескриптора на другой. Последний раз редактировалось Carbon; 18.06.2010 в 18:43. |
20.06.2010, 10:59 | #3 |
Регистрация: 18.06.2010
Сообщений: 3
|
Пашет-то оно пашет. Нужно такой же результат как и в ff7.
|
21.06.2010, 11:36 | #4 |
Регистрация: 18.06.2010
Сообщений: 3
|
Вопрос решен с помощью poll().
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно найти ошибку в программе (С++) | STIFFmaster_LP | Помощь студентам | 13 | 24.01.2010 00:44 |
Программа с классом и объектами (Что в программе нужно изменить?) | wepoTWR | Помощь студентам | 0 | 17.11.2009 19:26 |
плиз помогите переделать одно место в программе | hen | Помощь студентам | 2 | 23.04.2009 19:44 |
Нужно сохранить информацию в программе | Alex_09 | Общие вопросы Delphi | 10 | 23.03.2009 18:41 |