将进程的标准输出重定向到多个管道

Posted

技术标签:

【中文标题】将进程的标准输出重定向到多个管道【英文标题】:Redirect stdout of a process to more than one pipe 【发布时间】:2017-05-15 01:37:11 【问题描述】:

我想用 exevcp 执行一个进程(比如说 ls -l)。我希望它的输出进入多个进程的输入。如果用管道可能的话,我不知道。有人可以帮我吗?

【问题讨论】:

您可能需要创建一个内存队列来保留输出并开发一个 API 来将输入提供给多个进程。 查看tee 的工作原理:git.savannah.gnu.org/cgit/coreutils.git/tree/src/tee.c 使用shell,在linux下可以使用tee 【参考方案1】:

看看tee 的工作原理,正如 cmets 中所建议的那样,可能是要走的路。但是,为简单起见,为什么不使用外壳和 tee 本身包裹在您的过程中呢?

your_process | tee >(process1) >(process2)

供参考:OS X / Linux: pipe into two processes?

【讨论】:

以上是关于将进程的标准输出重定向到多个管道的主要内容,如果未能解决你的问题,请参考以下文章

Linux 重定向与管道符

如何使用 Unix(或 Windows)中的(最好是未命名的)管道将一个进程的标准输出发送到多个进程?

使用带有标准输入和标准输出重定向的 2 进程管道时如何避免标准输入上的重复输入

10标准I/O输入输出重定向及管道

标准I/O重定向和管道

将标准输出从多处理重定向到 Tkinter 文本小部件