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

Соединение процессов в конвейер с использованием неименованных каналов

18.06.2018, 16:52. Показов 1140. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим, мы создали канал, с помощью фунции pipe().
Далее создаем левого и правого потомка, поток стандартного вывода левого потомка соединен через канал с потоком стандартного ввода правого потомка.

В общем идея понятна, непонятны детали. Конкретизирую: рассматривая нужные действия для левого потомка, получается такой алгоритм:

a. Использовать close (pipefd[0]), поскольку читаемый конец канала в левом потомке не нужен.
b. Использовать close(1), чтобы закрыть первоначальный стандартный вывод.
c. Использовать dup(pipefd[1]) для копирования записываемого конца канала в дескриптор файла 1.
d. Использовать close(pipefd[1]), поскольку нам не нужны две копии открытого дескриптора.
e. Выполнить exec для запускаемой программы.

Пункт a логичен. Не понимаю что происходит в пунктах b и c. Зачем мы закрываем стандартный вывод? Зачем мы используем функцию dup? Объясните пожалуйста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.06.2018, 16:52
Ответы с готовыми решениями:

Межпотоковое взаимодействие с использованием разделяемой памяти и неименованных каналов
Ребят возникла следующая проблема.. Нeoбходимo сoздать 3 потoка. 1 глaвный и 2 дополнительных. У потока на вхoде текстoвый файл. ...

Использование неименованных каналов, заданных явным образом
Добрый вечер, у меня не получается вывести трубу неименованного канала. Использование неименованных каналов, заданных явным образом. ...

Конвейер команд для нескольких процессов
Здравствуйте все. Моя задача: написать конвейер команд. Из командной строке поступает команды, разделенные символом |. команда 1 |...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2018, 16:52
Помогаю со студенческими работами здесь

Конвейер c использованием ||>
Начал учить F# (зачем?), экспериментрирую с конвеерами, не могу разобраться как применять конвеер с помoщью ||> Допустим есть такой...

Использование процессов, каналов, событий и семафоров для реализации клиент-серверного приложения
Парни, прошу вашей помощи. Нужно получить зачет, осталась 1 лабораторная работа, которую я даже малейше не представляю как ее сделать. Тема...

Передача строки символов между процессами с использованием именованных каналов
Нашел пример по теме, но как нужно запускать эти части и произвести передачу данных от одного процесса к трем другим? Серверная часть:...

Замерять пропускную способность каналов до удалённых серверов c использованием Iperf
Возникла задача замерять пропускную способность канала до удаленных серверов (штук 50). При этом сначала нужно заходить на криптошлюзы...

синхронизация процессов с использованием мьютексов
помогите, не могу найти информацию для работы с мьютексами для синхронизации процессов


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.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, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 27.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 27.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru