如何解决在节点中获取子进程的输出时出错
我有一个C程序(我没有编写代码),该程序在终端中打印一些数据。我使用spawn函数将程序作为子进程在节点中启动。
const child_process = spawn('./myProgram',['--arg']);
之后,我对事件进行编码以获取打印的数据:
child_process.stdout.on('data',function(data) {
console.log(data);
});
运行程序时,在nodejs终端中看不到c程序的输出数据。如果我使用stdio作为继承初始化子进程,则它可以正常工作。
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得到了答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。