Уже есть программа, которая читает несколько каналов или файловых дескрипторов и записывает в стандартный вывод (не разбивая строки).
Как cat
, но читает все файлы одновременно и сохраняет строки.
Что-то вроде:
until(all fds are EOF) {
select(multiple fds);
read a line from triggered fd;
write the line to the stdout;
}
Необходимо избегать кодирования циклов select/epoll или использования многопоточности в простых программах. Как "выбрать цикл для Bash".
Обновление: я также создал аналогичный вопрос по Unix.SE.