我已经把它编码好了,我不知道怎么让它以其他方式工作。
我也很欣赏如何测试其正确性的示例代码。
谢谢你的帮助

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/

10-11 22:13