文件打开模式 w+ r+ a+ 区别和辨析

w+ 打开文件并读写  1. 文件存在,则清空(也即写入空); 2. 文件不存在,则创建文件 ; 3. 文件流定位到开始位置, 所以read() 会得到空。

r+  打开文件并读写   1. 文件存在,打开文件,文件指针定位到文件开始位置; 2. 文件不存在, 则报错文件不存在

a+  打开文件并读添   1. 文件存在,打开文件,文件指针定位到文件开始位置,但不清空;2.  文件不存在,创建文件;3. 打开后读取时,在文件开头位置,4. 写入时,添加到文章末尾,并且指针位于添加后的末尾,所以再次读取会乱码

另外,

1. w 打开文件写入,也会清空文件,如果使用read(),则报错;a 打开文件添加,数据流添加到文件末尾,而不是w模式的清空后添加。

2. b可以附加到上述的字母后,形成rb, rb+, wb等等模式,针对二进制文件,比如exe, elf, jpeg格式的文件,进行文件操作; 在unix 类型的系统上,text格式与二进制的处理相同,但是非unix类型的系统上,换行格式不同,所以需要用加b模式来在指定是否是二进制。

reference:

http://man7.org/linux/man-pages/man3/fopen.3.html

http://stackoverflow.com/questions/16208206/confused-by-python-file-mode-w

http://www.cnblogs.com/operaculus/p/5680850.html

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件索引节点和目录项对象是文件系统中的两个重要概念,它们具有不同的作用和功能,但也有一些联系。 文件索引节点(inode)是文件系统中的一个数据结构,用于描述文件的相关信息,包括文件的所有者、权限、时间戳等元数据。每个文件都有一个唯一的inode号码,可以通过inode号码来访问和操作文件文件系统中的所有文件都被存储在inode中,而不是直接存储在目录中。 目录项对象(directory entry)则是文件系统中的一个数据结构,它用于描述目录中的文件名和对应的inode号码。每个目录项对象都包含一个文件名和一个inode号码,它们一起表示目录中的一个文件。由于目录也是文件,因此目录项对象也被存储在inode中。 文件索引节点和目录项对象之间的联系在于,目录项对象包含了文件文件名和对应的inode号码,这样才能在目录中找到文件。而文件索引节点则包含了文件的所有信息和数据,可以通过inode号码来访问和操作文件。也就是说,目录项对象是文件名和inode号码的映射,而文件索引节点则是文件的具体信息和数据的存储。 总的来说,文件索引节点和目录项对象是文件系统中的两个不同的概念,它们分别描述了文件的信息和目录中文件名和inode号码之间的映射关系。在文件系统中,它们共同作用,构成了文件的基本组成部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值