int main()
{
FILE *fp = fopen("./file.txt", "a");
if(fp == NULL)
{
printf("open file err!\n");
return -1;
}
fwrite("hello", 5, 1, fp);
//fflush(fp);
close(fp);
while(1)
{
sleep(5);
}
return 0;
}
fwrite 会将数据写进缓冲区中,并不会直接写入磁盘中,如果此时程序突然挂掉,会导致数据丢失。
严格来讲,缓冲区共有四种刷新规则:立即刷新、行刷新、满刷新、强制刷新。
调用fwrite等函数后,紧接着调用fflush()函数将缓冲区刷新,这样数据就会被立刻写入文件而不用等到程序结束(因为之前的数据都在缓冲区里)。