首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >圆柱形管道(./ piping ./progB . ./progA)

圆柱形管道(./ piping ./progB . ./progA)
EN

Unix & Linux用户
提问于 2021-08-14 22:30:33
回答 2查看 119关注 0票数 0

我有两个二进制文件,一个(questions.bin)抛出诸如“1+3是什么?”这样的问题。到STDOUT并从STDIN获取答案;另一个answers.bin以上述格式接受STDIN中的问题,并将它们打印到STDOUT。

我希望能够把它们的输出传递给彼此,就像

代码语言:javascript
复制
./questions.bin | ./answers.bin | ./questions.bin

有办法用管道吗?否则,你会怎样做呢?

EN

回答 2

Unix & Linux用户

发布于 2021-08-14 23:04:01

事实证明,这是一个使用命名管道的简单案例。下面是我从这个答案获得的一个修改过的示例:

代码语言:javascript
复制
mkfifo backpipe
./questions.bin 0<backpipe | ./answers.bin 1>backpipe
票数 3
EN

Unix & Linux用户

发布于 2021-08-15 09:23:59

在Linux上,您可以使用/dev/fd/x的属性,其中fd引用管道,其行为类似于命名管道:

代码语言:javascript
复制
: | (./questions.bin | ./answers.bin) > /dev/fd/0

通过管道重定向特性,yash外壳具有与pipe()系统调用的原始接口:

代码语言:javascript
复制
(./questions.bin | ./answers.bin) >>|0

它们避免创建命名管道(以及与保证独占创建、限制对它们的访问以及事后或在信号上进行清理有关的相关问题)。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/664706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档