【续2】linux C语言 文件描述符 读写地址分析

记录时间: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()后,文件流指针都被移动。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章