What would you expect the return code of a process to be if the process is
never executed? Note that the default value for an integer is 0, so if the
return code is never set, then it remains 0 by default.
Shells, etc have their own defined error codes for this, and set the return
code accordingly. For example, when invoking the shell using `poEvalCommand`
(via the following code), the shell sets the return code to 127.
import std/osproc
import std/oserrors
var command = "lsaaa -lah"
try:
let process = startProcess(command, options = {poUsePath,
poParentStreams, poEvalCommand})
echo "WAITING..."
echo process.waitForExit()
except OSError as e:
echo "ERROR CODE:", e.errorCode
echo OSErrorCode(e.errorCode)
echo e.msg
Run