В информатике, анонимный канал - это симплекс канал связи FIFO, который может использоваться для одностороннего межпроцессного взаимодействия (IPC). Реализация часто интегрируется в подсистему IO операционной системы. Обычно родительская программа открывает анонимные каналы и создает новый процесс, который наследует другие концы каналов, или создает несколько новых процессов и размещает их в конвейере.
Полнодуплексный (двусторонний) для связи обычно требуется два анонимных канала.
Конвейеры поддерживаются в большинстве популярных операционных систем, начиная с Unix и DOS и далее, и создаются с использованием символа «|
» во многих снаряды.
Конвейеры являются важной частью многих традиционных Приложения Unix и их поддержка хорошо интегрированы в большинство Unix-подобных операционных систем. Каналы создаются с помощью системного вызова pipe
, который создает новый канал и возвращает пару файловых дескрипторов , относящихся к концам канала для чтения и записи. Многие традиционные программы Unix разработаны как фильтры для работы с конвейерами.
Как и многие другие средства ввода-вывода устройств и IPC в Windows API, анонимные каналы создаются и настраиваются с помощью функций API, специфичных для средства ввода-вывода. В этом случае CreatePipe
используется для создания анонимного канала с отдельными дескрипторами для чтения и записи на концах канала. Операции ввода-вывода чтения и записи в канале выполняются с помощью стандартных функций API средства ввода-вывода ReadFile
и WriteFile
.
В Microsoft Windows чтение и запись в анонимные каналы всегда выполняются. блокировка. Другими словами, чтение из пустого канала приведет к тому, что вызывающий поток будет ждать, пока не станет доступен хотя бы один байт или не будет получен конец файла в результате того, что дескриптор записи канала будет закрыто. Точно так же запись в полный канал заставит вызывающий поток ждать, пока не станет доступным пространство для хранения записываемых данных. Чтения могут возвращаться с меньшим, чем запрошенное количество байтов (также называемое коротким чтением).
Новые процессы могут наследовать дескрипторы анонимных каналов в процессе создания.