C++ 以下哪一个答案与Ubuntu14.04 LTS上的O_RDWR相同?

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

我得到了以下复选框的列表,其中包含了在Ubuntu 14.04 LTS上选择所有与O_RDWR等价的正确答案的所有可能解决方案。根据下面的列表

O_RDONLY

一,

二,

三,


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