3 回答

TA貢獻1862條經(jīng)驗 獲得超6個贊
var spawn = require('child_process').spawn;
var proc = spawn('./a.out');
proc.stdout.pipe(process.stdout); // 把子進程的輸出導(dǎo)向控制臺
proc.stdin.write('2 4\n6 8\n'); // 寫入數(shù)據(jù)
proc.stdin.end();
執(zhí)行后,在控制臺觀察輸出。
采用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();

TA貢獻1777條經(jīng)驗 獲得超3個贊
因為nodejs的stdin的控制臺的輸入是帶回車的,所以輸入的可能是‘bye\r\n',所以與'bye'不相等,建議你還是用正則表達式匹配吧。 還有,'end'事件不應(yīng)該這么用的,end會在輸入結(jié)束的時候觸發(fā),不應(yīng)該自己手工觸發(fā),會和流的事件混淆。

TA貢獻1803條經(jīng)驗 獲得超6個贊
odejs中調(diào)用系統(tǒng)命令或文件使用的是子進程,即我們經(jīng)常見到的child_process,它提供了幾個方法://生成子進程child_process.spawn(command[,args][,options])//直接執(zhí)行系統(tǒng)指令child_process.exec(command[,options][,callback])//調(diào)用腳本文件child_process.execFile(file[,args][,options][,callback])首先實現(xiàn)node執(zhí)行系統(tǒng)指令的功能varexec=require('child_process').exec;。。。。
- 3 回答
- 0 關(guān)注
- 972 瀏覽
添加回答
舉報