来瞧一个程序,了解一下标准I/O中的缓冲区对程序运行的影响:
#include<stdio.h>
#include<unistd.h>
int main()
{
char a[2];
FILE *fp;
fp = fopen("a.txt", "w");
//setbuf(fp, 0); /* 有没有这一句很关键,若有,则关闭缓冲区,若无,则带有缓冲区,运行后发现,带有缓存区的I/O要等程序运行结束后才写入*/
a[0] = 'a';
a[1] = 'b';
fwrite(a, 1, 2, fp);
sleep(600);
return 0;
}
从上面例子可以说明一个问题:标准I/O何时进行实际的读写操作?