标签: c++ c linux command-line pipe
我有这组.gz文件,每个文件里面都是一个文本文件。该文本文件需要在C程序中使用。以下代码以某种方式解决了这个问题,其中参数1和2是整数,我在main()中作为C程序(argc,argv [])的参数接收。
main()
gzip -dc xyz.txt.gz | ./program parameter1 parameter2
有人可以在命令行中解释上述代码的工作原理吗? 文本文件如何自动传递给程序? 我是否需要在C程序中编写额外的代码才能接收此文本文件?
答案 0 :(得分:1)
shell通过pipe(7)将一个命令的stdout直接连接到另一个命令的stdin。两个程序都不能做任何与众不同的事情来利用这一点。