jba*_*low 7 linux terminal tty pty embedded-linux
我有一个由第三方开发的Linux进程,它与终端通信.对于调试,我希望看到前面的通信.
有人可能会认为cat这样做(看一个方向):
./third-party-app &
cat /dev/tty
Run Code Online (Sandbox Code Playgroud)
......但事实并非如此.相反,cat将窃取一半用于应用程序的数据,这几乎毫无价值.
第三方应用程序是硬编码的/dev/tty.
我发现监视通信的一种方法是将/dev/tty设备重命名为,例如,/dev/real_tty并创建一个/dev/tty在其位置调用的命名管道.然后运行:
cat /dev/real_tty | tee /dev/tty &
Run Code Online (Sandbox Code Playgroud)
...至少让我看到输出/dev/real_tty,通过将数据复制/dev/real_tty到命名管道/dev/tty和stdout.
这种工作但它感觉非常狡猾,并依赖于替换设备的技巧.它也不能在两个方向上工作,因为命名管道只在一个方向上传输数据.
这样做的正确方法是什么?
如果有人想知道,TTY设备是微控制器的RS-232链接.信息不敏感或不安全.所有进程(应用程序和间谍)都可以以root身份运行.