我知道这可能是一个相当愚蠢的问题,但在阅读了许多关于整个“缓冲”系统的文件后,我不明白为什么人们会刷新流而不是缓冲区。
我见过人们写像这样的东西:
我在想,既然我们实际上是将东西存储在缓冲区中,为什么我们会刷新与其相关的流而不是直接刷新缓冲区本身,因为缓冲区实际上存储了一些内容,并且应该被刷新。(有些人告诉我,如果按照我的方式来做,结果也会是一样的,所以我也没必要纠结…)
例如,我们无法像
我见过人们写像这样的东西:
FILE* file=fopen("mytext.txt","wr");
char buffer[10]="";
setbuf(file,buffer);
//do some stuff....
fflush(file);
....
fclose(file);
我在想,既然我们实际上是将东西存储在缓冲区中,为什么我们会刷新与其相关的流而不是直接刷新缓冲区本身,因为缓冲区实际上存储了一些内容,并且应该被刷新。(有些人告诉我,如果按照我的方式来做,结果也会是一样的,所以我也没必要纠结…)
例如,我们无法像
fflush(buffer)
这样写东西。为什么?
char buffer[BUFSIZ];
。 - BLUEPIXY