C语言文件打开方式区别
主要记录r+,a,a+三种打开方式的一点小区别,其它基本信息网上已经很成熟
r+ | 文件打开后,位置指针位于文件头。此时调用fseek():向后偏移量超出文件尾,会进行补^@并实际存在字节数,调用ftell()返回当前位置,此时写入也是在当前位置;向前偏移量超出文件头,位置指针不会移动,仍在当前位置 |
---|---|
a | 文件打开后,位置指针位于文件尾。调用fseek():向后偏移量超出文件尾,位置指针在偏移后的位置,但此时写入是接着文件尾写,并不是偏移后位置指针的位置;向前偏移量超出文件头,位置指针不会移动,仍在当前位置 |
a+ | 文件打开后,位置指针位于文件头。调用fseek():向后偏移量超出文件尾,位置指针在偏移后的位置,但此时写入是接着文件尾写,并不是偏移后位置指针的位置;向前偏移量超出文件头,位置指针不会移动,仍在当前位置 |