猿问

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

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


HUX布斯
浏览 2139回答 3
3回答

当年话下

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();

MMMHUHU

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

largeQ

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;。。。。
随时随地看视频慕课网APP

相关分类

Node.js
我要回答