近段时间,又把C primer plus第五版翻了一下,查看以前由于不理解而跳过的地方,现在来看时,结合在其他书上看到的东西(在linux书上看到关于重定向的使用),发现自己居然能够理解了。
Unix、Linux和当前的DOS版本都能够重定向输入和输出。输入重定向可以使程序能够使用文件代替键盘作为输入,输出重定向则使程序能够使用文件代替屏幕作为输出。
一、 输入重定向
输入重定向即用文本文件代替键盘当作程序的输入。 ‘ < ‘ 符号是Unix、Linux和DOS的重定向运算符。该运算把文件和stdin流关联起来,将该文件的内容引导至程序。程序本身并不知道(或关心)输入是来自文件而不是来自键盘。C将文件和I/O设备置于相同的地位,所以现在这个文件就是I/O设备。我们来写个程序感受一下到底是怎么用的。首先编写一个Reput.c文件,代码如下所示。
#include<stdio.h>
int main()
{
char ch;
while ((ch = getchar())!= EOF ) //读取输入字符
{
putchar(ch); //输出字符
}
putchar('\n');
return 0;
}
编译程序得到一个.exe可执行文件。DOS下使用cmd打开命令行,进入生成的.exe所在目录。输入命令: Reput.exe < test.txt。如图1所示。 test.txt里的内容如图2所示被印出来。