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

时间:2011-11-13 18:41:35

标签: c linux file-io

我知道open提供了这些互斥的标志:O_RDONLYO_WRONLYO_RDWR

我想知道:如果文件以O_RDWR

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

1 个答案:

答案 0 :(得分:5)

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