假设有一个现有程序在stdin上侦听其输入。我想在同一程序中创建一个pthread,现在该程序可以监听stdin,然后根据所遇到的情况,将其传递到原始程序。
为此,我将创建一个pipe(),并将pthread配置为写入输入文件描述符,并配置原始程序以监听输出描述符。这是完成此工作的正确方法吗?我了解流程之间的管道,但是否可以在单个流程中进行这样的管道传输?
当然,您可以使用pipe(),但是即使两个端点都在同一进程中,数据也必须通过内核。
如果您有用于此的源代码(我想您已经拥有),并且您不介意进行不重要的更改,并且性能是您的优先事项,我建议您使用共享内存将数据发送到原始程序。这将比使用pipe()
快得多