У меня есть программа, которая exec
открывает другую программу, а затем связывается с этим процессом через stdin/stdout
. Я хочу внедрить небольшой регистратор, который фиксирует сообщение, которое (я думаю) представляет собой синхронный построчный текст, распространяет двустороннюю связь, но также записывает ее в файл.
Есть ли какие-нибудь тривиальные способы сделать это? Я пытался использовать strace
, но он просто дает много шума, и я скорее хочу захватить всю последовательность, поэтому я хочу запустить ее, когда произойдет exec
.
Я был Подумайте о создании небольшой программы, которая будет находиться между вызывающим и вызываемым объектами, и после того, как она exec
отредактировала реальный вызываемый объект, читает из stdin, регистрирует, помещает это в stdin вызываемых и затем ждет, когда что-то вернется на Вызовите stdout, запишите это, а затем запишите это обратно вызывающей стороне.
Звучит просто, но я был немного напуган установкой соединений канала и трудностью отладки такой программы. Поэтому я подумал, что я прошу здесь найти более простое решение, прежде чем приложить к этому усилия.
Я немного погуглил, но мне сложно сформулировать хороший запрос. В основном заканчиваются такими вещами, как this , который все еще является кодом и захватывает только одностороннюю связь.