gpt4 book ai didi

c - 为什么重定向到 stdout 和 stdin 在 PIPE 编程中如此普遍

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:34 25 4
gpt4 key购买 nike

我对 C 中的 IPC 编程非常陌生。我有一个非常基本的问题,为什么我们的许多 C 代码使用 dup2 使 stdout 作为 PIPE 的写头和 stdin 作为读头。与整数类型的数组比较并使用该数组作为管道调用的输入有什么好处吗?

最佳答案

许多 C 程序被编写为过滤器,它们(默认情况下)从标准输入读取并写入标准输出。带管道的管道利用并支持将一个程序的输出发送到另一个程序的输入的习惯用法,例如:

ls | wc -l

这就是为什么您经常以将管道文件描述符连接到标准输入或标准输出的代码结束。如果您需要让程序读取或写入任意文件描述符,则必须提供控制参数来告诉它们该做什么。诚然,如今在具有 /dev/fd 文件系统的 Linux 等系统上,这是可行的,但这是最近的一项创新,在许多程序首次编写时还不可用。您可以获得与上述几乎相同的结果:

ls | wc -l /dev/fd/0

但是 wc 在这种情况下会回显文件名,而在第一个示例中没有给出名称时它不会回显文件名。

关于c - 为什么重定向到 stdout 和 stdin 在 PIPE 编程中如此普遍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27662261/

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