简体   繁体   English

如何重复向Brackets节点子进程输入数据?

[英]How can I input data to Brackets node child process repeatly?

My Brackets extension wants to send data to its node process repeatly. 我的Brackets扩展程序想要重复向其节点进程发送数据。 like: 喜欢:

 #include <stdio.h>
int main(){
  int a,b;
  while(scanf("%d %d", &a, &b)!=EOF)
    printf("%d\n",a+b);
  return 0;
}

I know in pure node I can just write: 我知道在纯节点中我可以写:

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

but in Brackets, NodeDomain.prototype.exec() did not return a ChildProcess object. 但是在括号中,NodeDomain.prototype.exec()没有返回ChildProcess对象。 Is there any way I can achieve this? 有什么办法可以实现?

Yes, the Brackets NodeDomain doesn't return a ChildProcess to the Brackets code (for example your main.js ). 是的,Brackets NodeDomain不会将ChildProcess返回到Brackets代码(例如您的main.js )。
But it does save it in the domain, so you could exec a different command in the domain to send data to the ChildProcess: 但是它确实将其保存在域中,因此您可以在域中执行其他命令以将数据发送到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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM