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

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

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;。。。。
- 3 回答
- 0 關注
- 979 瀏覽
添加回答
舉報