亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Node.js中,怎么向spawn和exec產生的子進程的stdin輸入東西

在Node.js中,怎么向spawn和exec產生的子進程的stdin輸入東西

飲歌長嘯 2019-05-31 03:02:51
在Node.js中,怎么向spawn和exec產生的子進程的stdin輸入東西
查看完整描述

3 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

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-06-01
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

因為nodejs的stdin的控制臺的輸入是帶回車的,所以輸入的可能是‘bye\r\n',所以與'bye'不相等,建議你還是用正則表達式匹配吧。 還有,'end'事件不應該這么用的,end會在輸入結束的時候觸發,不應該自己手工觸發,會和流的事件混淆。

查看完整回答
反對 回復 2019-06-01
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

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-06-01
  • 3 回答
  • 0 關注
  • 979 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號