输入重定向

C Primer Plus 第8章 字符输入/输出和输入确认 8.3 重定向和文件

本小妞迷上赌 提交于 2019-12-04 23:42:38
输入和输出涉及到函数、数据和设备。例如,考虑echo_eof.c程序。该程序使用了输入函数getchar()、输入设备(我们已经假设)是键盘,输入数据流由单独的字符组成。假设您希望保持相同的输入函数和相同的类型的数据,但希望改变程序寻找数据的位置。“程序如何了解在哪里寻找其输入?” 默认情况下,使用标准I/O包的C程序将标准输入作为其输入源 。这就是前面标识为stdin的流。该流是作为向计算机中读取数据的常规方式而建立的。一台现代的计算机是一个灵活的工具,您可能指示它到其他地方寻求输入。特别地,您可以告诉一个程序从文件而不是键盘寻求其输入。 令程序与文件一同工作有两种方式。 一种方式是明确的使用打开文件、关闭文件、读文件、写文件等专门的函数。 这种方法我们在第13章中讨论。 第二种方式是使用一个设计用于与键盘和屏幕共同工作的程序,但是使用不同通道重定向(redirect)输入和输出,例如输入到文件和从文件中输出。 换句话说,就是您将stdin流重新分配至文件。getchar()程序继续从该流中取数据,而不真正关心流是从何处获取其数据。这种方法比第一种方法在一此方面功能更有限,但它更容易使用,而且使您能够更加熟悉常用的文件处理技术。 重定向的一个主要问题是其与操作系统而不是C相关联。 Unix、Linux和Dos重定向 一、输入重定向 假设您已经编译了echo_eof.c程序