打开模式 | 作用 | 若操作的文件不存在 | 成功打开后 文件指针位置 | 是否清空原有内容 | 读取位置 | 写入位置 | 备注 |
---|---|---|---|---|---|---|---|
r | 只读 | 打开失败 | 开头 | 否 | 任意位置读取 | 不可写入 | 读取配置参数时使用 |
w | 只写 | 新建 | 开头 | 是 | 不可读取 | 任意位置写入 | 一般少见 |
a | 只写 | 新建 | 结尾 | 否 | 不可读取 | 只能尾部写入 | 一般少见 |
r+ | 读写 | 打开失败 | 开头 | 否 | 任意位置读取 | 任意位置写入 | 反复读写,且修改原内容时用,一般是rb+ |
w+ | 读写 | 新建 | 开头 | 是 | 任意位置读取 | 任意位置写入 | 一般是测试时用用,因为会清除原内容 |
a+ | 读写 | 新建 | 结尾 | 否 | 任意位置读取 | 只能尾部写入 | 只能在尾部追加写入 |
二进制模式b与文本模式操作相似,只是以二进制流的形式读写而已。例如a的二进制表现是ab。
一些嵌入式系统封装的文件系统,并不完全遵守以上规则。
1、同一个文件可以多次打开,操作互相独立,至于最多可以打开多少次,操作时比如位置偏移量是否互相影响,与系统配置有关
2、嵌入式系统使用的文件系统,可解决flash寿命限制问题,文件系统都支持磨损均衡