Der Befehl nodejs exec schlägt fehl und es wird keine nützliche Fehlermeldung angezeigt

Dies ist der auszuführende Code



    cp.exec("cc -Wall /tmp/test.c -o /tmp/test", function(e, stdout, stderr) {
        if (e) {
            var errorstr = "Compilation failed with the following error<br>"+ 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' ist das Argument des Rückrufarguments von socket.io. 'ee' ist eine Instanz von EventEmitter

Kommen wir zum Problem. Beim Ausführen des Codes gibt der Rückruf an, dass der Befehl nicht erfolgreich war. console.log (e, stdout, stderr) ist

{ [Error: Command failed: ] killed: false, code: false, signal: undefined } '' ''

/tmp/test.c ist ein gültiger C-Code und beim Überprüfen des Verzeichnisses / tmp stelle ich fest, dass test.c korrekt ist und die Binärdatei 'test'ist Wird generiert und läuft in einer Shell, wird ordnungsgemäß ausgeführt. Daher verstehe ich nicht, warum die Ausführung nicht erfolgreich war. Die Informationen des Fehlerobjekts sind ebenfalls nicht hilfreich. Würde mich über Hilfe / Erklärung freuen

Antworten auf die Frage(1)

Ihre Antwort auf die Frage