是否可以在C中的程序中使用pipe()?

问题描述 投票:0回答:1

假设有一个现有程序在stdin上侦听其输入。我想在同一程序中创建一个pthread,现在该程序可以监听stdin,然后根据所遇到的情况,将其传递到原始程序。

为此,我将创建一个pipe(),并将pthread配置为写入输入文件描述符,并配置原始程序以监听输出描述符。这是完成此工作的正确方法吗?我了解流程之间的管道,但是否可以在单个流程中进行这样的管道传输?

c io pipe pthreads file-descriptor
1个回答
1
投票

当然,您可以使用pipe(),但是即使两个端点都在同一进程中,数据也必须通过内核。

如果您有用于此的源代码(我想您已经拥有),并且您不介意进行不重要的更改,并且性能是您的优先事项,我建议您使用共享内存将数据发送到原始程序。这将比使用pipe()

快得多
© www.soinside.com 2019 - 2024. All rights reserved.