перенаправить вывод из файла на три работающих потока - PullRequest
0 голосов
/ 25 апреля 2010

Я хочу использовать команду «cat myclip.avi» для отправки вывода в три запущенных потока, я пытаюсь обработать один и тот же файл клипа, чтобы получить три разных результата. я могу использовать dup2 или как сделать трубу с резьбой, а не вилкой?

Извините за столь расплывчатый вопрос. Может быть, мне нужно укрепить мое понимание dup2. на самом деле я использую внешнее приложение, скажем, «linux cat» для чтения данных, которые в потоке один, затем данные должны быть переданы в два других потока, чтобы обработать его, также те, которые используют внешнее приложение, скажем, «сортировать по возрастанию» и «сортировать по убыванию» Предположим, что приложение сортировки принимает только pip in, что тогда?

1 Ответ

0 голосов
/ 25 апреля 2010

"Как я могу сделать трубу с резьбой, а не вилкой?" Вы не можете сделать трубу с вилкой или резьбой; Вы делаете трубу с трубой. Предположим, у вас всего 3 потока, каждый из которых имеет доступ к одним и тем же данным. Один поток читает данные в буфер и использует данные. Затем он блокируется (на некотором мьютексе), пока два других потока не используют данные. Повторение. Поскольку вы используете потоки, вам вообще не нужен канал.

...