0

我的 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 对象。有什么办法可以做到这一点?

4

1 回答 1

0

是的,Brackets NodeDomain 不会将 ChildProcess 返回到 Brackets 代码(例如您的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);
于 2015-08-18T07:44:11.517 回答