Одно из известных мне отличий состоит в том, что именованные каналы в Linux являются реальными записями в файловой системе (вы увидите это в списке каталогов, они имеют специальный тип), тогда как в Windows они хранятся в каком-то волшебном хранилище. где-то (все они доступны по пути "\\. \ pipe \".
Во-вторых, в Linux вы можете просто писать / читать из каналов, как если бы они были любым другим файлом, используя стандартные методы файлового ввода-вывода. В то время как в Windows вы должны использовать специальные функции «Pipe», которые являются частью Win32 API.
Мне больше нравится метод linux, потому что он позволяет мне использовать каналы с любым приложением, которое я хочу. Например:
mkfifo pipe.wav
decodeMP3 song.mp3 --out pipe.wav &
encodeAVI video.mpeg pipe.wav --out video.avi
Это позволяет мне направлять вывод декодера MP3 непосредственно в видеодекодер, вместо того, чтобы сначала декодировать весь MP3 в файл WAV на диске. Это удобно, если у вас двухъядерный процессор, потому что тогда вы выполняете обе операции одновременно, для хорошего ускорения.