在我的简单程序中:
#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
它,因为它具有更清晰的语义意义,但我的问题是,如果加入两个现有标志已经有效,为什么还要创建一个完整的另一个标志?这是否有一些历史原因,或者我只是忽略了一些东西,而这真的不起作用?