管道提供文件作为C程序的输入

时间:2015-09-27 05:46:19

标签: c++ c linux command-line pipe

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

gzip -dc xyz.txt.gz | ./program parameter1 parameter2

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

1 个答案:

答案 0 :(得分:1)

shell通过pipe(7)将一个命令的stdout直接连接到另一个命令的stdin。两个程序都不能做任何与众不同的事情来利用这一点。