在节点中获取子进程的输出时出错
Error getting the output of child process in node
我有一个 c 程序(我没有编写代码)在终端中打印一些数据。我使用 spawn 函数在节点中将程序作为子进程启动。
const child_process = spawn('./myProgram', ['--arg']);
之后,我对事件进行编码以获取打印数据:
child_process.stdout.on('data', function(data) {
console.log(data);
});
当我 运行 程序时,我无法在我的 nodejs 终端中看到我的 c 程序的输出数据。如果我使用 stdio 初始化子进程作为 inherit 它工作。
const child_process = spawn('./myProgram', ['--arg'], {stdio :'inherit'});
这里的关键点是我需要在我的 nodejs 应用程序中处理该数据。我想c文件打印数据的方式不是标准的,所以我的nodjs程序没有得到它。
文件输出到 stderr
而不是 stdout
。它已通过将事件添加到 stderr
:
来修复
child_process.stderr.on('data', function(data) {
console.log(data);
});
@tadman 得到答案。
我有一个 c 程序(我没有编写代码)在终端中打印一些数据。我使用 spawn 函数在节点中将程序作为子进程启动。
const child_process = spawn('./myProgram', ['--arg']);
之后,我对事件进行编码以获取打印数据:
child_process.stdout.on('data', function(data) {
console.log(data);
});
当我 运行 程序时,我无法在我的 nodejs 终端中看到我的 c 程序的输出数据。如果我使用 stdio 初始化子进程作为 inherit 它工作。
const child_process = spawn('./myProgram', ['--arg'], {stdio :'inherit'});
这里的关键点是我需要在我的 nodejs 应用程序中处理该数据。我想c文件打印数据的方式不是标准的,所以我的nodjs程序没有得到它。
文件输出到 stderr
而不是 stdout
。它已通过将事件添加到 stderr
:
child_process.stderr.on('data', function(data) {
console.log(data);
});
@tadman 得到答案。