Как перенаправить поток в несколько файлов?

Интересует, как реализовать то, что можно делать в командной строке:
ls > file1 > file2
Если в один файл, то все понятно: с помощью dup2() заменить STDOUT_FILENO на fd нужного файла, но вот если нужно несколько...
Единственное, что мне приходит в голову — это запустить процесс дочерний, который будет сидеть на STDOUT_FILENO и вручную записывать в каждый fd.
Может у кого-нибудь есть лучшее решение?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
как реализовать то что можно делать в командной строке:
ls > file1 > file2

Эта командная строка вовсе не перенаправляет поток в несколько файлов. Вывод попадает только в один из них. Второй файл создаётся, но остаётся пустым.
Перенаправить вывод в несколько файлов можно командой tee:
ls | tee file1 file2

Единственно что мне приходит в голову...вручную записывать в каждый fd.

Да.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы