标准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”方式打开文件,则数据永远被写入文件的结尾,那样与程序的设想相去甚远。
相关资讯
发表评论
|