怎么从 child_process 的标准输入 stdin 写入数据, 并同步地在 stdout 等待数据
发布于 11 年前 作者 LyleLee 4590 次浏览 最后一次编辑是 8 年前
var spawn = require("child_process").spawn;
    var binaryFile = /home/user/a.out;
    var gdb = spawn('gdb',[binaryFile]);

    gdb.stdout.setEncoding('utf8');
    gdb.stderr.setEncoding('utf8');
    gdb.stdin.setEncoding('utf8');

    console.log("开始调试");

    gdb.stderr.on('data',function(data)
    {
        return false;
    });

从客户端得到命令,就写到gdb的标准输入

 socket.on('command',function(commandString)
    {
        gdb.stdin.write(commandString+"\n");
    });

从标准输出得到数据

gdb.stdout.on('data',function(data)
    {
                socket.emit('executeSuccess',{commandResult:data});
    });

问题是,怎么样才能做到, 保证输入一条命令,并且得到该条命令的执行结果呢. 比如传入命令 next 怎么保证能得到 next 的执行结果 因为这些操作都是异步执行的

1 回复

楼主的 Markdown 语法用错了, 给调整了…

回到顶部