缓冲
先观察以下程序:
/*
将标准输入的数据复制到标准输出
*/
#include <stdio.h>
int main(void)
{
int ch;
while ((ch = getchar()) != EOF)
putchar(ch);
return 0;
}
以上程序并不是每读入一个字符后就马上输出,而是在按下回车键后一并输出.
C语言的输入输出一般会将读入的字符以及带输出的字符暂时保存在缓存中, 当达到下列条件时才进行实际的输入输出操作.
- 缓存已满
- 输入换行符
当然,也有下面这样的环境
- 立即输出
这些方式分别称为全缓冲、目行缓冲、无缓冲.
重定向:
如下所示,给定输入和输出文件名(假设运行文件的名称为list0808)并运行.
list0808 <输入文件名> 输出文件名
“输入文件”的数据就会复制到“输出文件”中去. 但这不是由C语言实现的,而是通过UNIX和MS-DOS等操作系统的重定向功能来实现.