将进程的标准输出重定向到多个管道
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?
【讨论】:
以上是关于将进程的标准输出重定向到多个管道的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Unix(或 Windows)中的(最好是未命名的)管道将一个进程的标准输出发送到多个进程?