long getLogcount(FILE *cfptr) { // 获取文件记录总数
long begin, end, logcount;
fseek(cfptr, 0L, SEEK_SET); // 定位指针到文件开始位置
begin = ftell(cfptr);
fseek(cfptr, size, SEEK_END); // size为一条记录的大小
end = ftell(cfptr);
logcount = (end - begin) / size - 1;
return logcount;
}
这里指针到底移动到哪里了,被搞蒙了
fseek(cfptr, 0L, SEEK_SET);是第1条数据的位置?
fseek(cfptr, size, SEEK_END);从最后再移动一条记录?
最后怎么又(end - begin) / size - 1还需要减1?
问下大神指针到底移动到哪里了。
因为fseek可以超越文件结尾,所以这么写是可以的,只是有点奇怪为什么要这么写?这是哪里的代码?