这是要执行的代码
cp.exec("cc -Wall /tmp/test.c -o /tmp/test", function(e, stdout, stderr) {
if (e) {
var errorstr = "Compilation failed with the following error
"+ e.message.toString()
client.send(errorstr)
console.log(e, stdout, stderr)
ee.prototype.removeAllListeners()
} else if (stderr.length > 0) {
client.send("Compilion finished with warnings\n"+ stderr + '\n')
client.send('compiled')
ee.prototype.emit('compiled')
} else {
client.send("Compilation successful")
ee.prototype.emit('compiled')
}
})
'client' 是 socket.io 的回调参数的参数。'ee' 是 EventEmitter 的一个实例
来到问题所在。在运行代码时,回调说命令不成功。console.log(e, stdout, stderr) 是
{ [错误:命令失败:] 杀死:假,代码:假,信号:未定义}''''
/tmp/test.c 是有效的 C 代码,在检查目录 /tmp 时,我发现 test.c 是正确的,并且正在生成二进制“测试”并在 shell 中运行时正确执行。所以我不明白为什么它会标记执行不成功。错误对象的信息也无济于事。将不胜感激一些帮助/解释