Как я могу повторно вводить данные в дочерний процесс узла Brackets?
Мое расширение Brackets хочет повторно отправлять данные процессу своего узла. лайк:
#include <stdio.h>
int main(){
int a,b;
while(scanf("%d %d", &a, &b)!=EOF)
printf("%d\n",a+b);
return 0;
}
Я знаю, в чистом узле я могу просто написать:
var exec = require('child_process').exec;
var ch = exec('./a.out');
process.stdin.pipe(ch.stdin);
ch.stdout.pipe(process.stdout);
ch.stderr.pipe(process.stdout);
но в скобках NodeDomain.prototype.exec() не возвращал объект ChildProcess. Есть ли способ, которым я могу достичь этого?
1 ответ
Да, NodeDomain скобок не возвращает ChildProcess к коду скобок (например, ваш main.js
).
Но он сохраняет его в домене, поэтому вы можете выполнить другую команду в домене для отправки данных в ChildProcess:
var child;
var childProcess = require("child_process");
function start() {
child = exec('./a.out');
}
function send(data) {
// Send data to the child
// process.stdin.pipe(child.stdin);
}
domainManager.registerCommand("domain", "start", start);
domainManager.registerCommand("domain", "send", send);