gpt4 book ai didi

c++ - 使用 O_RDWR 与 O_RDONLY | O_WRONLY

转载 作者:IT王子 更新时间:2023-10-28 23:56:51 26 4
gpt4 key购买 nike

在我的简单程序中:

#include <iostream>
#include <unistd.h>
#include <fcntl.h>
#include <sstream>

using namespace std;

int main(int argc, char *argv[]) {
stringstream ss;
ss << "What does the quick brown fox say?" << endl;

int file_descriptor = open("/dev/tty", O_RDONLY | O_WRONLY);
write(file_descriptor, ss.str().c_str(), ss.str().size());
}

我使用 O_RDONLY 组合打开终端流 | O_WRONLY,这似乎工作正常。我知道您应该使用 O_RDWR 因为它使语义更清晰,但我的问题是如果连接两个现有标志已经有效,为什么还要创建一个完整的其他标志?这是否有一些历史原因,或者我只是忽略了一些东西,而这真的不起作用?

最佳答案

O_RDONLY | O_WRONLY(至少在我的 Linux 机器上)与 O_RDWR 不同。

#define O_RDONLY         00
#define O_WRONLY 01
#define O_RDWR 02

它起作用的事实似乎是错误/功能/巧合,而不是“它起作用是因为它应该那样起作用”。

关于c++ - 使用 O_RDWR 与 O_RDONLY | O_WRONLY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365109/

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