2015-08-15 95 views
0

My 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()没有返回一个子进程对象。有什么办法可以做到这一点?

回答

0

是的,括号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);