WikiDer > Анонимная труба
В Информатика, анонимная трубка это симплекс ФИФО канал связи, который можно использовать для одностороннего межпроцессного взаимодействия (МПК). Реализация часто интегрируется в Операционная системафайл IO подсистема. Обычно родительская программа открывает анонимные каналы и создает новый процесс, наследующий другие концы каналов, или создает несколько новых процессов и размещает их в трубопровод.
Полный дуплекс (двусторонняя) связь обычно требует двух анонимных каналов.
Трубопроводы поддерживаются в большинстве популярных операционных систем, начиная с Unix и ДОС и далее, и создаются с использованием символа "|
"персонаж во многих оболочках.
Unix
Трубопроводы являются важной частью многих традиционных Unix приложения и их поддержка хорошо интегрированы в большинство Unix-подобный операционные системы. Трубы создаются с помощью трубка
системный вызов, который создает новый канал и возвращает пару файловые дескрипторы относится к концам канала для чтения и записи. Многие традиционные программы Unix разработаны как фильтры работать с трубами.
Майкрософт Виндоус
Как и многие другие устройства IO и IPC в Windows APIанонимные каналы создаются и настраиваются с помощью функций API, специфичных для средства ввода-вывода. В этом случае CreatePipe
используется для создания анонимного канала с отдельными дескрипторами для чтения и записи каналов. Чтение и запись операций ввода-вывода на конвейере выполняются с помощью стандартных функций API средства ввода-вывода ReadFile
и WriteFile
.
На Майкрософт Виндоус, чтение и запись в анонимные каналы всегда блокируются.[1] Другими словами, чтение из пустого канала заставит вызывающий поток ждать, пока не станет доступен хотя бы один байт или конец файла получен в результате закрытия дескриптора записи канала. Точно так же запись в полный канал заставит вызывающий поток ждать, пока не станет доступным пространство для хранения записываемых данных. Чтения могут возвращаться с меньшим количеством запрошенных байтов (также называется короткое чтение).
Новые процессы могут наследовать дескрипторы анонимных каналов в процессе создания.
Смотрите также
Рекомендации
- Харт, Джонсон М. Системное программирование Windows, третье издание. Аддисон-Уэсли, 2005. ISBN 0-321-25619-0
- "pipe (7) - справочная страница Linux". В архиве из оригинала 23 марта 2010 г.. Получено 2010-02-27.
Примечания
- ^ "Анонимные трубные операции". MSDN. Получено 2010-02-27.
Асинхронные (перекрывающиеся) операции чтения и записи не поддерживаются анонимными каналами.