gpt4 book ai didi

c - 在 C unix 中从外部文件(或控制文件)管道传输两个文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:58 26 4
gpt4 key购买 nike

嗨,我无法理解这个概念。

我需要从名为 control.c 的控制文件中执行两个文件,比如 a.c 和 b.c

我想将 a.c 的输出通过管道传输到 b.c 的输入

我理解文件描述符(fd):fd 0 = 标准输入fd 1 = 标准输出

我明白创建一个管道需要一个整数数组(两个fds)

e.g.
zpipe[2]
pipe(zpipe)

我想执行文件 a 和 b 并将 a 的输出通过管道传输到 b 的输入。

但是我对这个概念感到困惑,因为打开或阅读所述文件会创建一个新的 fd。我知道可以通过调用 fda = dup2 (fd,0) 将 a(例如 fda)的 fd 设置为 0。这不会破坏管道,因为 0 现在已关闭吗?

如果我打电话

execvp("a.c", args)
execvp("b.c", args)

我如何确保这些文件被正确传输并等待?

最佳答案

您可能希望使用管道和 fork 来获得所需的结果。查看 this question 的答案.

关于c - 在 C unix 中从外部文件(或控制文件)管道传输两个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44098533/

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