本文主要是介绍【续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()后,文件流指针都被移动。
这篇关于【续2】linux C语言 文件描述符 读写地址分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!