a是单词append的缩写,其中append表示追加,也就是文件尾部追加。
首先我们需要知道,虽然是追加,但本质还是write,因此a模式相当于是一种特别的write。前面在介绍w模式的时候说过,对于写都允许文件不存在,因此a模式同样也成立。
下面是a模式的一些重要结论:
- 允许文件不存在,如果不存在则创建文件。
- 虽然是写,但不清空原文件。
- 只写,任何读都是无效的。
- fseek偏移地址无效。
- 无论怎么操作,a模式都保证是在文件尾部追加数据。
我们从这些结论中,可以看出a特别不同于w模式的一条是:a模式总是保证数据追加在文件尾部。
实验代码
测试代码如下:
int main(int argc, char* argv[]){ FILE* fp=fopen("d:/tmp.txt","a"); if(fp==NULL){ printf("打开文件失败,程序退出!n"); return -1; } printf("当前位置:%dn",ftell(fp)); //当前位置为0 fseek(fp,1,SEEK_SET); //偏移指针 printf("当前位置:%dn",ftell(fp)); //当前位置为1 fputs("YY",fp); //不管怎么操作,YY都是追加在文件尾部 int c=fgetc(fp); printf("%dn",c); //无效 fclose(fp); return 0;}
结语
- a是一种特殊的write
- a只能写,读无效
- a总是保证数据追加在文件尾部
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!