2014-09-11 3 views
1

Можно ли написать прямо в стандартный вывод другого процесса?Прямая запись на стандартный вывод

У нас есть два отдельных процесса A и B. Процесс B должен записывать в свою информацию stdout из процесса A. Я изучал это и нашел трубы ... но проблема в том, что мне не очень нравится нужно писать из A и читать из B одновременно (количество информации может быть очень большой, а трубы сами по себе ограничены системой?) в основном потому, что это может быть слишком сложным. И, возможно, было бы легче писать в файл с, а затем распечатать этот файл в стандартный вывод из B ...

UPDATE: процесс А, как ожидается, будет запущен постоянно, начиная с запуска системы (Unix) процесса B, как ожидается, будет выполнен с консоли и получить информацию от процесса A. Связь между процессами проста в реализации в нашей среде. Но так как количество информации может быть очень большим я хотел сделать высокий эффективный способ, чтобы получить инфокоммуникационные от А на стандартный вывод из B

+0

Это странно сформулированный вопрос. Если, например, вы запускаете обе свои программы на консоли без перенаправления, то они оба будут иметь ту же самую «stdout» - консоль. Если B просто собирается распечатать то, что посылает A, зачем вам B вообще? –

+0

Можете ли вы использовать поток в процессе B для чтения из трубы и сразу распечатать его? – Fsmv

+0

Другими словами, вы хотите, чтобы процесс A записывался непосредственно в stdout процесса B? С какой платформой вы работаете? Кроме того, как вы выводите информацию? Как правило, stdout обычно выравнивается по строке. Как сказал Павел, зачем нужно? Можете ли вы изменить вопрос, чтобы объяснить роли двух процессов? Производит ли A генерирование информации, которую B должен обрабатывать, и B выводит информацию в определенном формате? Может ли это быть сделано изнутри процесса А? –

ответ

1

Вы можете отправить STDOUT дескриптор файла (1) от В к над UNIX домен розетка подключение.

Вы можете это сделать manually. Или вы можете использовать портативный library.

В любом случае процесс получит файл STDOUT дескриптора B. Затем A может write() к нему.

+0

Спасибо за подсказку, я рассмотрю это. И жаль, что я все еще не могу сделать rep ++ – Douman

+0

@Douman не беспокоится, мы здесь, чтобы попросить о помощи и дать помощь;) – GreenScape

Смежные вопросы