[fpc-pascal] TProcess execution
Jonas Maebe
jonas.maebe at elis.ugent.be
Thu Feb 9 08:42:21 CET 2006
On 9 feb 2006, at 07:48, Micha Nelissen wrote:
>>> How can I know whether a TProcess failed when trying to execute it ?
>>> Running will be false, but I want to distinguish between the file
>>> not
>>> there / no execution permission / etc. and it started running but
>>> was done
>>> quickly.
>> It should raise an exception if execution fails ?
>
> That I should have noticed :-). In unix, the return result of the
> 'fpexecve' call is not checked, at least. If it returns, it does
> 'halt(127)', so should I check the ExitStatus being 127 ?
Yes. If you look at things like "man popen" under Linux (or pretty
much any *nix), you'll also see comments like this:
Failure to execute the shell is indistinguishable from
the shell’s
failure to execute command, or an immediate exit of the
command. The
only hint is an exit status of 127.
The reason is that because of the fork/vfork construct these OS'es
use, there is no way to report an error to the parent process except
by exit codes.
Jonas
More information about the fpc-pascal
mailing list