首页 > 代码库 > 以Append方式打开文件,设置偏移量无效

以Append方式打开文件,设置偏移量无效

 1 #include<stdio.h> 2  3 int main() 4 { 5     FILE * fd = fopen("btoo1.c", "ab+"); 6     fpos_t p ;  7     int fp = fgetpos(fd, &p); 8     printf("bef seek: fgetpos = %ld, ftell = %d\n", p, ftell(fd)); 9     fseek(fd, 12, SEEK_SET);10     fgetpos(fd, &p);11     printf("bef seek: fgetpos = %ld, ftell = %d\n", p, ftell(fd));12     fwrite("*****", 1, 5, fd);13     fclose(fd);14     return 0;15 }
View Code

测试代码如上。现象就是这样,原因未知。

解决方案:

设置临时文件,将偏移量前的内容先写到零时文件内,然后删源文件,再将零时文件重命名。