以下代码将“A”和“B”都写入文件“out.txt”,第一次调用 open 返回 3,第二次调用返回 4。
我期望将“A”写入文件,将“B”写入屏幕。我还希望 open 在每种情况下都返回 3。
我应该怎么做才能修复以下代码:
int main(int argc, char** argv)
{
int file = open("out.txt", O_APPEND | O_WRONLY);
if(file != 3) return 1;
if(dup2(file,1) < 0) return 1;
std::cout << "A" << std::endl;
if(dup2(1,file) < 0) return 1;
std::cout << "B" << std::endl;
file = open("out.txt", O_APPEND | O_WRONLY);
if(file != 3) return 1;
return 0;
}