我想将文件重定向到标准输入
因此,我使用.txt进行测试和练习。该教程说,重定向就像将文件的内容复制到标准输入,然后将应在命令窗口中显示的内容写到另一个文件中
所以,这是我的代码
int main(int argc, char ** argv) {
printf("%d arguments\n", argc);
for(argv; *(argv); printf("%s\n", *(argv)), argv++);
return 0;
}
在命令外壳中,我键入了$a < in.txt > out.txt
in.txt中的内容是
Hello World
Test File
Here we go
我希望out.txt具有
4 arguments
a
Hello World
Test File
Here we go
但事实证明是
1 arguments
a
为什么从txt到stdin的重定向不起作用?
似乎
答案 0 :(得分:1)
使用管道重定向输入和输出不会填充argv
;它只是将执行环境中的stdin
和stdout
指向其他位置。这对您的程序是透明的。
argv
包含传递给程序本身而非执行环境的命令行参数。