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

我知道打开提供这些互斥的标志: O_RDONLYO_WRONLYO_RDWR

我想知道:如果文件打开为O_RDWR ,是否存在任何性能问题(甚至是ms的几分之一)或处理文件的不同方法,以及

  • 我只写入文件。 (相对于O_WRONLY开放)
  • 我只从文件中读取数据。 (相对于O_RDONLY开放)

首先,在描述写/读标签的两种情况下,你似乎错误地(倒过来)。 至于你提出的问题,VFS在其各种结构中,通过标志来跟踪期望的访问权限。 读/写标志在相同的标志(多)字节中通常是不同的位。 当进程请求以读或写的方式访问时,内核会检查它是否具有所请求的访问权限,并相应地执行。 由于设置2位不会增加执行时间,因此以后访问相同时,应该看不到任何区别。 使用适当的标签只是好的风格和文件保护的一部分。