- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在根据我在某些元文件中设置的权限检查发送到 open(2) 调用的标志。这里的 perms 与通常发送给 chmod 等调用的八进制值有关。我希望在 perms 与相关标志不匹配时输入 if block 。
if((perms == 4 && !(flags & O_RDONLY)) ||
(perms == 2 && !(flags & O_WRONLY)) ||
(perms == 6 && !(flags & O_RDWR)))
我希望它能工作,并且它在 O_WRONLY 和 O_RDWR 中运行良好。但是,O_RDONLY 的实际值为 0,因此 & 运算符将为每个值返回 false。不幸的是,删除否定将导致每个 perms 值 4 跳过 if block 的不良行为。我怎样才能在这里实现我的目标?
最佳答案
最初,open 的第二个参数被称为 mode 并记录为 0、1 或 2。Later on ,该参数被重命名为 oflag,它现在可以包含除访问模式之外的标志。不过,模式的可能值保持不变,并为它们指定了符号名称,注意与标志不同的是,只有 O_RDONLY
、O_WRONLY
、并且可以使用 O_RDWR
。 POSIX standard包括以下定义:
Mask for use with file access modes is as follows:
O_ACCMODE
Mask for file access modes.
所以你可以使用((flags&O_ACCMODE) == O_RDONLY)
等代码
关于仅检查 O_RDONLY 标志以打开 (2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37891184/
我正在处理文件状态标志。 在我进行的测试中,我发现 #include #include "fcntl.h" int main() { const int flag = O_RDONLY;
我正在根据我在某些元文件中设置的权限检查发送到 open(2) 调用的标志。这里的 perms 与通常发送给 chmod 等调用的八进制值有关。我希望在 perms 与相关标志不匹配时输入 if bl
在我的简单程序中: #include #include #include #include using namespace std; int main(int argc, char *argv
使用函数 Open() 或 OpenFile(path, os.O_RDONLY) 后我可以读取文件,但之后无法删除文件。所以我尝试使用写标志 os.RDWR 打开文件,如下面的代码,看看我是否可以删
我目前正在从以下网站学习现代 OpenGl:http://www.arcsynthesis.org/gltut/Building%20the%20Tutorials.html . 不幸的是,当我按照说
是否可以从 nodejs 访问操作系统常量 O_RDONLY、O_WRONLY、O_APPEND 等的值? 我知道它们在所有平台上都不一样,所以正确的方法是使用常量而不是依赖我当前系统中的硬编码值。
我正面临标题所说的确切问题。 代码 pid_t childpid; int childfdRead, childfdWrite; // file descriptors for childs int
我想在我的程序中读取异步磁盘。 服务器上有很多硬盘,如果一个硬盘慢,程序就会阻塞。我想进行异步调用。 如果我调用: 打开(路径,O_NONBLOCK | O_RDONLY | O_DIRECT) 然后
我正在尝试调试为什么我的 PHP 使用如此多的 CPU。 像这样运行 strace 后: strace -e open,close php /scripName.php 它向我显示了它使用的所有文件,
我是一名优秀的程序员,十分优秀!