我已对此进行编码,但我不确定如何以其他任何方式使其工作。 我也很欣赏如何测试其正确性的示例代码。
感谢您的帮助
dup2(STDOUT_FILENO, STDERR_FILENO);
dup2(fd, STDOUT_FILENO);
答案 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
重定向到该文件。