C linux内部区别O_WRONLY和O_RDWR如果只是写入

bru*_*ais 3 c linux file-io

我知道公开发售这些相互排斥的标志:O_RDONLY, O_WRONLYO_RDWR.

我想知道:是否有任何性能问题(即使它只是一小部分ms)或处理文件的不同方式如果文件打开为O_RDWR

  • 我只写到文件.(与O_WRONLY一样开放)
  • 我只读取文件中的数据.(与O_RDONLY一样开放)

gno*_*ule 5

首先,在描述写/读标记的两种情况下,您似乎输入错误(反转).至于你的要求,VFS在各种结构中通过标志跟踪所需的访问权限.读/写标志通常是同一标志(多)字节中的不同位.当进程请求访问为读或写时,内核检查它是否具有所请求的访问权限,并相应地进行.由于设置2位不会增加执行时间,因此您应该看到没有区别,因为以后的访问是相同的.使用正确的标签只是好的风格和文件保护的一部分.