gpt4 book ai didi

c - Linux 中的双向管道

转载 作者:太空狗 更新时间:2023-10-29 11:36:26 25 4
gpt4 key购买 nike

因此,如果我在 gcc stdio.h 中使用 popen(),我可以将父级的标准输出通过管道传输到其子级的标准输入,或者我可以将子级的标准输出通过管道传输到父级的标准输入。我想同时做这两件事。有没有办法使用 popen 来做到这一点,或者我是否需要使用较低级别的工具(如共享内存)来完成这项工作?

注意:在 FreeBSD 中,popen 似乎可以通过“r+”进行读写。我不明白 child 的标准输出是如何通过管道传输到 parent 和 parent 的标准输出的。无论如何,这可能对我有用,但在 Linux 中似乎并非如此。如果我在这一点上弄错了,那将回答我的问题。这是我收到此说明的链接:https://www.freebsd.org/cgi/man.cgi?query=popen&sektion=3

注意 2:我更喜欢按优先顺序排列几乎所有 Linux 发行版、FreeBSD 和 OSX 都可移植的解决方案。话虽如此,我很乐意至少让它在 Ubuntu 14.04 中运行。

最佳答案

你完全正确。

某些环境支持带有双向管道的“增强型”popen() - 但它不是“标准”。

如果你想移植到所有版本的'nix(Linux、BSD、OSX等),你应该使用“pipe/fork/dup2”:

关于c - Linux 中的双向管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32913040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com