将STDOUT和STDERR重定向到文件“>&”

时间:2016-04-19 20:43:31

标签: c output-redirect

我已对此进行编码,但我不确定如何以其他任何方式使其工作。 我也很欣赏如何测试其正确性的示例代码。

感谢您的帮助

dup2(STDOUT_FILENO, STDERR_FILENO);
dup2(fd, STDOUT_FILENO);

1 个答案:

答案 0 :(得分:2)

你很接近,但你需要以相反的顺序进行两次dup2次呼叫。

dup2(fd, STDOUT_FILENO);
dup2(STDOUT_FILENO, STDERR_FILENO);
close(fd);

您的代码等同于POSIX shell语法(所有shell的语法都基于Bourne shell):

2>&1 >filename

使stderr转到 stdout,同时将stdout重定向到该文件。