为了账号安全,请及时绑定邮箱和手机立即绑定

在Node.js中,怎么向spawn和exec产生的子进程的stdin输入东西

在Node.js中,怎么向spawn和exec产生的子进程的stdin输入东西

HUX布斯 2019-03-28 18:18:40
在Node.js中,怎么向spawn和exec产生的子进程的stdin输入东西
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

var spawn = require('child_process').spawn;
var proc = spawn('./a.out');

proc.stdout.pipe(process.stdout); // 把子进程的输出导向控制台

proc.stdin.write('2 4\n6 8\n'); // 写入数据
proc.stdin.end();

执行后,在控制台观察输出。
采用child_process的exec方法可以这样来写:
var exec = require('child_process').exec;
var child = exec('./a.out', function (err, stdout, stderr) {
console.log(stdout); // 直接查看输出
});
child.stdin.write('2 4\n6 8\n'); // 输入
child.stdin.end();

查看完整回答
反对 回复 2019-03-30
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

因为nodejs的stdin的控制台的输入是带回车的,所以输入的可能是‘bye\r\n',所以与'bye'不相等,建议你还是用正则表达式匹配吧。 还有,'end'事件不应该这么用的,end会在输入结束的时候触发,不应该自己手工触发,会和流的事件混淆。

查看完整回答
反对 回复 2019-03-30
?
largeQ

TA贡献2039条经验 获得超7个赞

odejs中调用系统命令或文件使用的是子进程,即我们经常见到的child_process,它提供了几个方法://生成子进程child_process.spawn(command[,args][,options])//直接执行系统指令child_process.exec(command[,options][,callback])//调用脚本文件child_process.execFile(file[,args][,options][,callback])首先实现node执行系统指令的功能varexec=require('child_process').exec;。。。。

查看完整回答
反对 回复 2019-03-30
  • 3 回答
  • 0 关注
  • 2138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信