Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0xDEFACE

Заморочка с dup2()

18.06.2010, 14:26. Показов 1441. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

В прикрепленном файле ff7.zip есть код программы, который используя одностороннюю связь между родительским процессом и дочерним через пайп (т.е. данные от родителя передаются потомку через пайа) имитирует что-то вроде шелла (исполнитель команд).

В файле ff8.zip находится абсолютно аналогичная программа, в которой используется двусторонняя связь родителя с потомком. То есть родительский процесс передает данные дочерниму процессу через пайп, а дочерний процесс возвращает данные (результат) родителю через другой пайп.

Проблема в том, что никак не получается реализовать ТАКОЙ ЖЕ интерфейс в программе ff8, как и в ff7. Для этого, я так понимаю нужно просто кое-где воткнуть соответствующий dup2() (наверное 2 штуки).
Собственно вопрос к аудитории: КУДА? Пожалуйста помогите разобраться!!

P.S. За оригиналы программ спасибо: http://www.iakovlev.org/index.html?p=226&l1=2&l1=2

Итак, разархивируем ff7.zip. Компилируем, например так:

$ gcc ff7.c -o ff7

Запускаем:
$ ./ff7

Открываем новый терминал/консоль и командуем, например следующее:

$ echo pwd > input.txt

Наблюдаем за результатом в первой консоле.

Нужно достичь АБСОЛЮТНО такого же взаимодействия и интерфейса в ff8, путем правильного использования dup2()...

P.S. Если компилите из-под никсов (я компилил под cygwin последний раз :-)), понадобится заменить cmd на ваш шелл (csh/bash...):

C
1
2
char* cmd[] = { "bash", (char *)0 };
execvp("bash", cmd);
Вложения
Тип файла: zip ff7.zip (599 байт, 33 просмотров)
Тип файла: zip ff8.zip (782 байт, 41 просмотров)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2010, 14:26
Ответы с готовыми решениями:

dup2&exec
Здравствуйте. int fd = open(...) // successful; dup2(fd, 1); close(fd); execv(prog, args); Вот такой код не работет. Т. е. в...

Не работает dup2
Здравствуйте! Пытаюсь ассоциировать ввод с выводом, но почему-то все равно выводит все в обычный поток вывода :( #include...

заморочка с Директом
Всё просто: в деректе лежит бабос, а вот при попытке вывода (ЦОП -SpyLOG) смотрю что и выводить нечего... Статистика висит! Что за...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2010, 14:26
Помогаю со студенческими работами здесь

Заморочка с ХРюшей
Как восстановить NTLDR??? Где скачать ХРюшу 2010,SP 3 Prof.Rus+Key???....заранее спасибо=)

Заморочка с Excel
Здравствуйте, уважаемые форумчане! У меня такой вопрос, есть 2 колонки значений (вложение Для инета), эти колонки нужно как-то разбить по...

Заморочка с стилем
Всем привет!!! Ребята подскажите как правильно сделать ссылку-картинку. Вот часть кода с файла стилей: /* Menu */ #menu...

Заморочка слушателя мыши
import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import...

Заморочка с коллекцией документов.
Во вьюшке прикрутил кнопку, по которой обрабатываю отмеченные документы в коллекции. Все работает но… вот что-то не получается галочки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru