C++ 以下哪一个答案与Ubuntu14.04 LTS上的O_RDWR相同?
我得到了以下复选框的列表,其中包含了在Ubuntu 14.04 LTS上选择所有与O_RDWR等价的正确答案的所有可能解决方案。根据下面的列表 O_RDONLY 一, 二, 三,C++ 以下哪一个答案与Ubuntu14.04 LTS上的O_RDWR相同?,c++,c,linux,unix,C++,C,Linux,Unix,我得到了以下复选框的列表,其中包含了在Ubuntu 14.04 LTS上选择所有与O_RDWR等价的正确答案的所有可能解决方案。根据下面的列表 O_RDONLY 一, 二, 三, 1他们都没有 唯一与O_RDWR等效的是O_RDWRO_RDWR不是单个位的按位组合。无论是O_EXEC,O_RDONLY,O_SEARCH,还是O_WRONLY 根据(加粗矿): 。。。应用程序应指定前五个值中的一个 (文件访问模式)的值如下: O_EXEC Open for execute only (no
1他们都没有 唯一与
O_RDWR
等效的是O_RDWR
O_RDWR
不是单个位的按位组合。无论是O_EXEC
,O_RDONLY
,O_SEARCH
,还是O_WRONLY
根据(加粗矿):
。。。应用程序应指定前五个值中的一个
(文件访问模式)的值如下:
O_EXEC
Open for execute only (non-directory files). The result is unspecified if this
flag is applied to a directory.
O_RDONLY
Open for reading only.
O_RDWR
Open for reading and writing. The result is undefined if this flag is applied to a FIFO.
O_SEARCH
Open directory for search only. The result is unspecified if this flag is
applied to a non-directory file.
O_WRONLY
Open for writing only.
没有一个 唯一与
O_RDWR
等效的是O_RDWR
O_RDWR
不是单个位的按位组合。无论是O_EXEC
,O_RDONLY
,O_SEARCH
,还是O_WRONLY
根据(加粗矿):
。。。应用程序应指定前五个值中的一个
(文件访问模式)的值如下:
O_EXEC
Open for execute only (non-directory files). The result is unspecified if this
flag is applied to a directory.
O_RDONLY
Open for reading only.
O_RDWR
Open for reading and writing. The result is undefined if this flag is applied to a FIFO.
O_SEARCH
Open directory for search only. The result is unspecified if this flag is
applied to a non-directory file.
O_WRONLY
Open for writing only.
研究按位运算符
O_RDWR is defined in fcntl.h and is equals to 2.
O_WRONLY = 1
O_RDONLY = 0
1 = 1
2 = 2
3 = 3
1 << 1 = 2
3 & 2 = 2
3 | 2 = 3
O_WRONLY = 1
(O_RDONLY + O_WRONLY) = 1
(O_RDONLY | O_WRONLY) = 1
(O_RDONLY & O_WRONLY) = 0
(O_RDONLY && O_WRONLY) = 0
(O_RDONLY << 1) = 1
(O_WRONLY << 1) = 2
0 = 0
O_RDWR在fcntl.h中定义,等于2。
O_WRONLY=1
Ordonly=0
1 = 1
2 = 2
3 = 3
1查看按位运算符
O_RDWR is defined in fcntl.h and is equals to 2.
O_WRONLY = 1
O_RDONLY = 0
1 = 1
2 = 2
3 = 3
1 << 1 = 2
3 & 2 = 2
3 | 2 = 3
O_WRONLY = 1
(O_RDONLY + O_WRONLY) = 1
(O_RDONLY | O_WRONLY) = 1
(O_RDONLY & O_WRONLY) = 0
(O_RDONLY && O_WRONLY) = 0
(O_RDONLY << 1) = 1
(O_WRONLY << 1) = 2
0 = 0
O_RDWR在fcntl.h中定义,等于2。
O_WRONLY=1
Ordonly=0
1 = 1
2 = 2
3 = 3
我写一个小程序,将所有这些表达式与O_RDWR
进行比较并打印结果…写一个小程序,将所有这些表达式与O_RDWR
进行比较并打印结果…我怀疑问题是关于具体实现的行为。。。在我看来,“在Ubuntu 14.04 LTS上”似乎是一个赠品。回答这个问题的唯一方法是查看标题并对数值进行相关计算,或者更简单地说,编写一个这样做的程序。@MatteoItalia但这并不意味着什么-O_RDWR
不是用其他位定义的-它被定义为O_RDWR
,不管该值是什么。如果O_RDWR
可以从其他标志构建,那么这是一个与其定义值无关的巧合。这就像说SIGSEGV
是SIGINT+SIGKILL
。该值可能恰好匹配,但这不是SIGSEGV
的含义SIGSEGV
只是SIGSEGV
而已。我怀疑问题是关于特定于实现的行为。。。在我看来,“在Ubuntu 14.04 LTS上”似乎是一个赠品。回答这个问题的唯一方法是查看标题并对数值进行相关计算,或者更简单地说,编写一个这样做的程序。@MatteoItalia但这并不意味着什么-O_RDWR
不是用其他位定义的-它被定义为O_RDWR
,不管该值是什么。如果O_RDWR
可以从其他标志构建,那么这是一个与其定义值无关的巧合。这就像说SIGSEGV
是SIGINT+SIGKILL
。该值可能恰好匹配,但这不是SIGSEGV
的含义SIGSEGV
仅为SIGSEGV
。