私の簡単なプログラムでは:
#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
が、私の質問は、2 つの既存のフラグを結合することが既に機能している場合に、なぜわざわざ別のフラグを作成するのかということです。これには何らかの歴史的な理由がありますか、それとも私が何かを見落としているだけで、これは実際には機能しませんか?