如何通过伪终端传递标准流(C语言)

如何通过伪终端传递标准流(C语言)

这是我设计的用例:编写一个连接到 stdout 和 stderr 的 C 程序,以便在像往常一样将这些文本流发送到控制台之前被动地检查这些文本流。每次在文本中找到字符串“hello”时,都会增加一个计数器,并将更新后的值保存在某个任意日志文件中。这应该监视写入 stdout/stderr 的任何程序或进程。

在我看来,这应该可以通过 /dev/ptmx 或者一堆 dup/dup2 调用来实现,但在我的一生中,我找不到明确的文档或一个很好的例子。它或多或少类似于 telnetd,只是没有网络部分。我读了很多书,对 Linux TTY 的理解比以前好多了,但显然还不够好。

相关内容