***问一个大批量fwrite()时候,效率差的问题!!---100分
我的test.dat文件中,存储的是STRUCT B结构的信息,共3万多条。我现在需要对其中记录的某个值iVar进行修改,比如,由1改成0。
另外,需要更改的记录信息存储在一个map里,一个记录,对应着一个该记录在文件中的位置。根据这个位置,来fwrite(),把相关值由1改成0。
我发现,当需要更改的记录很多的时候,速度就会越来越慢。不知道为什么?
我是用一个for循环来写的
{
fseek(fp,lPosition,SEEK_SET);
fwrite(&iFlag,sizeof(int),1,fp);
fflush(fp);
}
其中,lPosition是记录在文件的位置,iFlag=0。