c++ - 管道以提供文件作为 C 程序的输入

标签 c++ c linux command-line pipe

我有这组 .gz 文件,每个文件中都有一个文本文件。该文本文件需要在 C 程序中使用。下面的代码以某种方式解决了这个问题,其中参数 1 和 2 是整数,我在 main() 中接收它们作为 C 程序(argc、argv[])的参数。

gzip -dc xyz.txt.gz | ./程序参数1参数2

有人可以解释一下上面的代码在命令行中是如何工作的吗? 文本文件如何自动传递给程序? 我是否需要在 C 程序中编写额外的代码来接收此文本文件?

最佳答案

shell 通过 pipe(7) 将一个命令的标准输出直接连接到另一个命令的标准输入.这两个程序都无需执行任何异常操作即可利用这一点。

关于c++ - 管道以提供文件作为 C 程序的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804989/

相关文章:

linux - 找不到 Arch Linux Laravel

linux - 重现 `Temporary failure in name resolution`

c - 中缀到后缀、数学函数(sin)、C

c - 在c编程中使用gets是错误的

C 指针、链表和节点

linux - 是否可以在 Linux 中捕获应用程序屏幕缓冲区?

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c++ - STL 迭代器循环

c++ - 如何将 curses 添加到 cmake?

c++ - 尝试创建自定义字符串类,但我不断收到 C2440 和 E0415 错误