假设我有一个程序foo
:
#include <iostream>
int main() {
std::cout << "a1" << std::endl;
std::cerr << "b2" << std::endl;
std::cout << "c3" << std::endl;
return 0;
}
enter code here
通过终端执行时打印
a1
b2
c3
您可以通过foo &> out.log
或仅使用foo 2>&1
将此输出转换为bash文件,但是如何使用node.js
来执行此操作?
execFile
分别返回stdout和stderr(无法在输出中找到它们的原始位置)。连接到data
事件也不起作用,因为它看起来像是内部缓冲,有时将两条标准线捆绑在一起,即使它们被stderr分开。
因此,两者都接近我的js程序,而不是打印
a1
c3
b2
而不是所需的输出。我真的不想通过bash代理执行foo
只是为了获得正确的stderr重定向。