記錄時間:2014-10-24 10:35
記錄原因:一直對文件指針讀寫存在疑惑,導致經常性的操作文件時,結果不理想。原來一直是對文件被打開後,對文件流指針的讀寫位置沒有弄清楚。
文件在打開後,任何一個對文件的操作都會改變文件流指針的位置,所以在對文件進行操作時,應從如下兩點考慮:
1、文件是不是第一次打開:可以確認文件指針的確卻位置;
2、檢測文件打開方式,特殊注意區分a與a+打開方式的不同點,然後使用fseek將文件流指針制定到指定位置,再進行操作,這樣才能保證讀寫文件的數據正常。
vi /tmp/test.c
1111111111111111
222222222222222
33333333333333
simple example:
int main()
{
FILE *fp = NULL;
char readbuf[256] = "";
fp = fopen("/temp/test.c","r");
while(fget(readbuf, 256, fp))
{
printf("readbuf is %s\n", readbuf);
memset(readbuf, 0, sizof(readbuf));
}
fclose(fp);
return 0;
}
執行結果:
1111111111111111
222222222222222
33333333333333
得到結果:
每次調用fgets()後,文件流指針都被移動。