Простая задачка: Нужно средствами ruby сделать свитчер потоков данных, идущих через pipe.
Пример: Запустить плеер с выводом в STDOUT и направлять поток музыки в одну из других утилит, будь то какой-нибудь DSP процессор или вывод напрямую в alsa плеер.
Вроде всё просто — открываем дескрипторы через IO.popen и делаем чтение-запись. Но как по-минимуму участвовать в передаче потока?
Простая задачка: Нужно средствами ruby сделать свитчер потоков данных, идущих через pipe.
Пример: Запустить плеер с выводом в STDOUT и направлять поток музыки в одну из других утилит, будь то какой-нибудь DSP процессор или вывод напрямую в alsa плеер.
Вроде всё просто — открываем дескрипторы через IO.popen и делаем чтение-запись. Но как по-минимуму участвовать в передаче потока?
Почему хочется делать именно через IO.popen: хочется держать дескрипторы открытыми чтобы без задержек переключаться между длинными цепочками pipe'ов
Простая задачка: Нужно средствами ruby сделать свитчер потоков данных, идущих через pipe.
Пример: Запустить плеер с выводом в STDOUT и направлять поток музыки в одну из других утилит, будь то какой-нибудь DSP процессор или вывод напрямую в alsa плеер.
Вроде всё просто — открываем дескрипторы через IO.popen и делаем чтение-запись. Но как по-минимуму участвовать в передаче потока?
Named pipes. Всем спасибо=) File.mkfifo('pipe_name')