api-run-command.txt: describe error behavior of run_command functions
Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5a7a3671b7
commit
0b91322311
@ -35,12 +35,32 @@ Functions
|
|||||||
Convenience functions that encapsulate a sequence of
|
Convenience functions that encapsulate a sequence of
|
||||||
start_command() followed by finish_command(). The argument argv
|
start_command() followed by finish_command(). The argument argv
|
||||||
specifies the program and its arguments. The argument opt is zero
|
specifies the program and its arguments. The argument opt is zero
|
||||||
or more of the flags `RUN_COMMAND_NO_STDIN`, `RUN_GIT_CMD`, or
|
or more of the flags `RUN_COMMAND_NO_STDIN`, `RUN_GIT_CMD`,
|
||||||
`RUN_COMMAND_STDOUT_TO_STDERR` that correspond to the members
|
`RUN_COMMAND_STDOUT_TO_STDERR`, or `RUN_SILENT_EXEC_FAILURE`
|
||||||
.no_stdin, .git_cmd, .stdout_to_stderr of `struct child_process`.
|
that correspond to the members .no_stdin, .git_cmd,
|
||||||
|
.stdout_to_stderr, .silent_exec_failure of `struct child_process`.
|
||||||
The argument dir corresponds the member .dir. The argument env
|
The argument dir corresponds the member .dir. The argument env
|
||||||
corresponds to the member .env.
|
corresponds to the member .env.
|
||||||
|
|
||||||
|
The functions above do the following:
|
||||||
|
|
||||||
|
. If a system call failed, errno is set and -1 is returned. A diagnostic
|
||||||
|
is printed.
|
||||||
|
|
||||||
|
. If the program was not found, then -1 is returned and errno is set to
|
||||||
|
ENOENT; a diagnostic is printed only if .silent_exec_failure is 0.
|
||||||
|
|
||||||
|
. Otherwise, the program is run. If it terminates regularly, its exit
|
||||||
|
code is returned. No diagnistic is printed, even if the exit code is
|
||||||
|
non-zero.
|
||||||
|
|
||||||
|
. If the program terminated due to a signal, then the return value is the
|
||||||
|
signal number - 128, ie. it is negative and so indicates an unusual
|
||||||
|
condition; a diagnostic is printed. This return value can be passed to
|
||||||
|
exit(2), which will report the same code to the parent process that a
|
||||||
|
POSIX shell's $? would report for a program that died from the signal.
|
||||||
|
|
||||||
|
|
||||||
`start_async`::
|
`start_async`::
|
||||||
|
|
||||||
Run a function asynchronously. Takes a pointer to a `struct
|
Run a function asynchronously. Takes a pointer to a `struct
|
||||||
@ -143,6 +163,11 @@ string pointers (NULL terminated) in .env:
|
|||||||
To specify a new initial working directory for the sub-process,
|
To specify a new initial working directory for the sub-process,
|
||||||
specify it in the .dir member.
|
specify it in the .dir member.
|
||||||
|
|
||||||
|
If the program cannot be found, the functions return -1 and set
|
||||||
|
errno to ENOENT. Normally, an error message is printed, but if
|
||||||
|
.silent_exec_failure is set to 1, no message is printed for this
|
||||||
|
special error condition.
|
||||||
|
|
||||||
|
|
||||||
* `struct async`
|
* `struct async`
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user