- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在处理一项网络作业,我们的任务是使用给定的协议(protocol)创建远程文件访问服务器。我的困难在于缺乏我能找到的信息来解释计算 open() 中 oflag 参数的位的过程。
我收到一条来自客户端的消息,要求我打开一个文件,在消息中,我解析了用于 oflag 中的标志的字符。具体是:
我在 Google 上四处搜索,搜索了按位运算、枚举标志、位标志、计算位标志等,但找不到有助于弄清楚如何为 oflag 创建位的东西。也许我只是不知道自己在寻找什么,而忽略了有用的信息?
有人可以吗:
非常感谢您的帮助,如果我不清楚我的问题或我想做什么,请告诉我,我会尽快澄清。
最佳答案
O_...
标志是数字,每个数字都设置了不同的一位。例如,在我的系统中,它们在 fcntl.h
中定义为
#define O_RDONLY 00
#define O_WRONLY 01
#define O_RDWR 02
#define O_CREAT 0100 /* not fcntl */
#define O_EXCL 0200 /* not fcntl */
#define O_NOCTTY 0400 /* not fcntl */
#define O_TRUNC 01000 /* not fcntl */
#define O_APPEND 02000
您使用 |
(逻辑或)组合标志并将单个数字传递给 open
,并为您想要的每个选项设置所有位。所以例如打开("file",O_RDWR | O_CREAT)
。
如果需要,您也可以计算一个 int 并将其传递给 open。
int flags = 0;
if (...)
flags |= O_RDWR;
...
open('file', flags);
关于c - 如何计算 open() 中 oflag 的位标志/枚举标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2292561/
我正在尝试学习如何使用信号量,但我对它们的一般用法有点困惑。我正在尝试理解给出的示例。 这是第一个进程中信号量的初始化: sem_t *s1 = sem_open(SEM_1, O_CREAT | O
我正在处理一项网络作业,我们的任务是使用给定的协议(protocol)创建远程文件访问服务器。我的困难在于缺乏我能找到的信息来解释计算 open() 中 oflag 参数的位的过程。 我收到一条来自客
我试过用 open("~/my.log", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
我是一名优秀的程序员,十分优秀!