我已经把它编码好了,我不知道怎么让它以其他方式工作。
我也很欣赏如何测试其正确性的示例代码。
谢谢你的帮助
dup2(STDOUT_FILENO, STDERR_FILENO);
dup2(fd, STDOUT_FILENO);
最佳答案
你很接近,但你需要按相反的顺序打两个电话。
dup2(fd, STDOUT_FILENO);
dup2(STDOUT_FILENO, STDERR_FILENO);
close(fd);
您的代码相当于POSIX shell语法(它在所有基于Bourne shell语法的shell中都可用):
2>&1 >filename
这使得
dup2
在重定向到文件时转到旧的stderr
。关于c - 将STDOUT和STDERR重定向到文件“>&”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36729066/