gpt4 book ai didi

c - 标记掩码读写 posix

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:51 26 4
gpt4 key购买 nike

检查文件的访问模式稍微复杂一些,因为 O_RDONLY (0)、O_WRONLY (1) 和 O_RDWR (2) 常量与打开文件状态标志中的单个位不对应。因此,为了进行此检查,我们用常量 O_ACCMODE 屏蔽标志值,然后测试与常量之一是否相等:

accessMode = flags & O_ACCMODE; 

if (accessMode == O_WRONLY || accessMode == O_RDWR)
printf("file is writable\n");

我想了解 expressiin 标志和 O_ACCMODE 是如何工作的

抱歉我在手机上写的格式不正确

最佳答案

文件模式是互斥的。您不能是只读只写,也不能是读写和其他两者之一。

O_ACCMODE 等于 3,因此第 1 位和第 2 位打开。

   00000000 (O_RDONLY)
& 00000011 (O_ACCMODE)
--------
00000000 <-- the result being compared

其中 00000000 等于只读,因此 (accessMode == O_RDONLY) 返回 true。

其他的也一样。

   00000001 (O_WRONLY)
& 00000011 (O_ACCMODE)
---------
00000001 <-- the result being compared

O_WRONLY 为 1,因此 (accessMode == O_WRONLY) 为“1 等于 1”,自然会返回 true。

关于c - 标记掩码读写 posix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24224845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com