Function
GLibspawn_check_wait_status
since: 2.70
Declaration [src]
gboolean
g_spawn_check_wait_status (
gint wait_status,
GError** error
)
Description [src]
Set error
if wait_status
indicates the child exited abnormally
(e.g. with a nonzero exit code, or via a fatal signal).
The g_spawn_sync()
and g_child_watch_add()
family of APIs return the
status of subprocesses encoded in a platform-specific way.
On Unix, this is guaranteed to be in the same format waitpid()
returns,
and on Windows it is guaranteed to be the result of GetExitCodeProcess().
Prior to the introduction of this function in GLib 2.34, interpreting
wait_status
required use of platform-specific APIs, which is problematic
for software using GLib as a cross-platform layer.
Additionally, many programs simply want to determine whether or not
the child exited successfully, and either propagate a GError
or
print a message to standard error. In that common case, this function
can be used. Note that the error message in error
will contain
human-readable information about the wait status.
The domain
and code
of error
have special semantics in the case
where the process has an “exit code”, as opposed to being killed by
a signal. On Unix, this happens if WIFEXITED() would be true of
wait_status
. On Windows, it is always the case.
The special semantics are that the actual exit code will be the
code set in error
, and the domain will be G_SPAWN_EXIT_ERROR
.
This allows you to differentiate between different exit codes.
If the process was terminated by some means other than an exit
status (for example if it was killed by a signal), the domain will be
G_SPAWN_ERROR
and the code will be G_SPAWN_ERROR_FAILED
.
This function just offers convenience; you can of course also check
the available platform via a macro such as G_OS_UNIX
, and use
WIFEXITED() and WEXITSTATUS() on wait_status
directly. Do not attempt
to scan or parse the error message string; it may be translated and/or
change in future versions of GLib.
Prior to version 2.70, g_spawn_check_exit_status()
provides the same
functionality, although under a misleading name.
Available since: 2.70
Parameters
wait_status
-
Type:
gint
A platform-specific wait status as returned from g_spawn_sync().
error
-
Type:
GError **
The return location for a recoverable error.
The argument can be NULL
.If the return location is not NULL
, then you must initialize it to aNULL
GError*
.The argument will be left initialized to NULL
by the function if there are no errors.In case of error, the argument will be set to a newly allocated GError
; the caller will take ownership of the data, and be responsible for freeing it.