当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > 标准IO之fopen()函数以追加的方式
标准IO之fopen()函数以追加的方式
时间:2016-12-14作者:华清远见

在标准IO库中,我们通过函数fopen()打开一个流作为标准IO的操作对象。

函数原型:FILE * fopen(const char * path,const char * mode);

程序如下:

编译执行结果如图:

查看fopen.t文件内容如下:

程序以追加的方式打开文件,当程序第一次写入字符串”hello world”完成后,当前读写位置为文件结尾,成功调用fseek重新设置读写位置到文件开头,当第二次写入的字符串”world hello”时候,程序并没有像我们想象的那样重新覆盖文件开头,而是继续从追加到文件结尾。原因就在于我们的打开方式为”a”,及以追加的方式打开文件,无论程序如何重定位读写位置,当程序向文件写入数据的时候,会自动重定位到文件结尾继续写入。

特别是当我们在实现多进程文件拷贝的时候,相比于文件IO,标准IO由于引用缓冲机制,效率有所增加,但是如果“w”方式打开文件,文件存在则清空文件,会影响已经写入的数据,如果”r”方式打开文件,则数据永远被写入文件的结尾,那样与程序的设想相去甚远。

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)