LINUX.ORG.RU

редирект stdin и stdout между двумя процессами

 ,


0

3

Здравствуйте!

Требуется перенаправить стандартный вывод процесса А на стандартный ввод процесса В. И, наоборот, стандартный вывод процесса В перенаправить на стандартный ввод процесса А.

В принципе, делается это с помощью mkfifo.

Но хочется реализовать так, чтобы не было блокировок у обоих процессов по чтению, чтобы процессы не «засыпали».

Как эффективно это сделать? Может есть какие то готовые команды или решение в виде, например, небольшого скрипта на bash?!

Можно написать программу на C, которая создаст два пайпа и перенаправит нужные файловые дескрипторы.

man pipe
man dup2

BlackHawk ()
Ответ на: комментарий от perlovik

Они всегда будут, если не вмешиваться в код программы. Если хотите ввод-вывод как только хотя бы один файловый дескриптор готов, используйте poll

BlackHawk ()

А что должно происходить с процессом, когда он читает из пустого pipe, если не блокировка? Ведь read() должен что-то вернуть?

mky ★★★★★ ()
1 марта 2014 г.
Ответ на: комментарий от cetjs2

Ты там по алфавиту что-ли теги парсишь? Уже до буквы с добрался? ))

nanoolinux ★★★★ ()
Ответ на: комментарий от cetjs2

А что — не было? Ну, тогда уж лучше вообще без тегов, чем с таким говном. [cи], блин. Фу!

Eddy_Em ☆☆☆☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.