无法将.txt文件重定向到stdin

时间:2018-09-07 18:56:31

标签: c

我想将文件重定向到标准输入

因此,我使用.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的重定向不起作用? 似乎

1 个答案:

答案 0 :(得分:1)

使用管道重定向输入和输出不会填充argv;它只是将执行环境中的stdinstdout指向其他位置。这对您的程序是透明的。

argv包含传递给程序本身而非执行环境的命令行参数。