Function
Shellutil_spawn_async_with_pipes_and_fds
Declaration [src]
GPid
shell_util_spawn_async_with_pipes_and_fds (
const char* working_directory,
const char* const* argv,
const char* const* envp,
GSpawnFlags flags,
int stdin_fd,
int stdout_fd,
int stderr_fd,
const int* source_fds,
const int* target_fds,
size_t n_fds,
int* stdin_pipe_out,
int* stdout_pipe_out,
int* stderr_pipe_out,
GError** error
)
Description [src]
A wrapper around g_spawn_async_with_pipes_and_fds() with async-signal-safe
implementation of GSpawnChildSetupFunc to launch a child program
asynchronously resetting the rlimit nofile on child setup.
Parameters
working_directory-
Type:
const char*Child’s current working directory, or
NULLto inherit parent’s, in the GLib file name encoding.The argument can be NULL.The data is owned by the caller of the function. The value is a platform-native string, using the preferred OS encoding on Unix and UTF-8 on Windows. argv-
Type: An array of
char*Child’s argument vector, in the GLib file name encoding; it must be non-empty and
NULL-terminated.The array must be NULL-terminated.The data is owned by the caller of the function. Each element is a NUL terminated UTF-8 string. envp-
Type: An array of
char*child's environment, or `NULL` to inherit parent's, in the GLib file name encoding.The argument can be NULL.The array must be NULL-terminated.The data is owned by the caller of the function. Each element is a NUL terminated UTF-8 string. flags-
Type:
GSpawnFlagsFlags from
GSpawnFlags. stdin_fd-
Type:
intFile descriptor to use for child’s stdin, or
-1. stdout_fd-
Type:
intFile descriptor to use for child’s stdout, or
-1. stderr_fd-
Type:
intFile descriptor to use for child’s stderr, or
-1. source_fds-
Type: An array of
intArray of FDs from the parent process to make available in the child process.
The argument can be NULL.The length of the array is specified in the n_fdsargument.The data is owned by the caller of the function. target_fds-
Type: An array of
intArray of FDs to remap
source_fdsto in the child process.The argument can be NULL.The length of the array is specified in the n_fdsargument.The data is owned by the caller of the function. n_fds-
Type:
size_tNumber of FDs in
source_fdsandtarget_fds. stdin_pipe_out-
Type:
int*Return location for file descriptor to write to child’s stdin, or
NULL.The argument will be set by the function. The argument can be NULL. stdout_pipe_out-
Type:
int*Return location for file descriptor to read child’s stdout, or
NULL.The argument will be set by the function. The argument can be NULL. stderr_pipe_out-
Type:
int*Return location for file descriptor to read child’s stderr, or
NULL.The argument will be set by the function. The argument can be NULL. 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 aNULLGError*.The argument will be left initialized to NULLby 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.
Return value
Type: GPid
The PID of the child on success, 0 if error is set.