| <!-- ##### SECTION Title ##### --> |
| Spawning Processes |
| |
| <!-- ##### SECTION Short_Description ##### --> |
| process launching with <function>fork()</function>/<function>exec()</function>. |
| |
| <!-- ##### SECTION Long_Description ##### --> |
| <para> |
| |
| </para> |
| |
| <!-- ##### SECTION See_Also ##### --> |
| <para> |
| |
| </para> |
| |
| <!-- ##### ENUM GSpawnError ##### --> |
| <para> |
| Error codes returned by spawning processes. |
| </para> |
| |
| @G_SPAWN_ERROR_FORK: Fork failed due to lack of memory. |
| @G_SPAWN_ERROR_READ: Read or select on pipes failed. |
| @G_SPAWN_ERROR_CHDIR: Changing to working directory failed. |
| @G_SPAWN_ERROR_ACCES: <function>execv()</function> returned %EACCES. |
| @G_SPAWN_ERROR_PERM: <function>execv()</function> returned %EPERM. |
| @G_SPAWN_ERROR_2BIG: <function>execv()</function> returned %E2BIG. |
| @G_SPAWN_ERROR_NOEXEC: <function>execv()</function> returned %ENOEXEC. |
| @G_SPAWN_ERROR_NAMETOOLONG: <function>execv()</function> returned %ENAMETOOLONG. |
| @G_SPAWN_ERROR_NOENT: <function>execv()</function> returned %ENOENT. |
| @G_SPAWN_ERROR_NOMEM: <function>execv()</function> returned %ENOMEM. |
| @G_SPAWN_ERROR_NOTDIR: <function>execv()</function> returned %ENOTDIR. |
| @G_SPAWN_ERROR_LOOP: <function>execv()</function> returned %ELOOP. |
| @G_SPAWN_ERROR_TXTBUSY: <function>execv()</function> returned %ETXTBUSY. |
| @G_SPAWN_ERROR_IO: <function>execv()</function> returned %EIO. |
| @G_SPAWN_ERROR_NFILE: <function>execv()</function> returned %ENFILE. |
| @G_SPAWN_ERROR_MFILE: <function>execv()</function> returned %EMFILE. |
| @G_SPAWN_ERROR_INVAL: <function>execv()</function> returned %EINVAL. |
| @G_SPAWN_ERROR_ISDIR: <function>execv()</function> returned %EISDIR. |
| @G_SPAWN_ERROR_LIBBAD: <function>execv()</function> returned %ELIBBAD. |
| @G_SPAWN_ERROR_FAILED: Some other fatal failure, <literal>error->message</literal> should explain. |
| |
| <!-- ##### MACRO G_SPAWN_ERROR ##### --> |
| <para> |
| Error domain for spawning processes. Errors in this domain will |
| be from the #GSpawnError enumeration. See #GError for information on |
| error domains. |
| </para> |
| |
| |
| |
| <!-- ##### ENUM GSpawnFlags ##### --> |
| <para> |
| Flags passed to g_spawn_sync(), g_spawn_async() and g_spawn_async_with_pipes(). |
| </para> |
| |
| @G_SPAWN_LEAVE_DESCRIPTORS_OPEN: the parent's open file descriptors will be |
| inherited by the child; otherwise all descriptors except stdin/stdout/stderr |
| will be closed before calling <function>exec()</function> in the child. |
| @G_SPAWN_DO_NOT_REAP_CHILD: the child will not be automatically reaped; you |
| must call <function>waitpid()</function> or handle <literal>SIGCHLD</literal> |
| yourself, or the child will become a zombie. |
| @G_SPAWN_SEARCH_PATH: <literal>argv[0]</literal> need not be an absolute path, |
| it will be looked for in the user's <envar>PATH</envar>. |
| @G_SPAWN_STDOUT_TO_DEV_NULL: the child's standad output will be discarded, |
| instead of going to the same location as the parent's standard output. |
| @G_SPAWN_STDERR_TO_DEV_NULL: the child's standard error will be discarded. |
| @G_SPAWN_CHILD_INHERITS_STDIN: the child will inherit the parent's standard |
| input (by default, the child's standard input is attached to |
| <filename>/dev/null</filename>). |
| @G_SPAWN_FILE_AND_ARGV_ZERO: the first element of <literal>argv</literal> is |
| the file to execute, while the remaining elements are the actual argument |
| vector to pass to the file. Normally g_spawn_async_with_pipes() uses |
| <literal>argv[0]</literal> as the file to execute, and passes all of |
| <literal>argv</literal> to the child. |
| |
| <!-- ##### USER_FUNCTION GSpawnChildSetupFunc ##### --> |
| <para> |
| Specifies the type of the setup function passed to g_spawn_async(), |
| g_spawn_sync() and g_spawn_async_with_pipes(). It is called in the |
| child after GLib has performed all the setup it plans to perform |
| but before calling <function>exec()</function>. Obviously, actions |
| taken in this function will only affect the child, not the parent. |
| </para> |
| |
| @user_data: user data to pass to the function. |
| |
| |
| <!-- ##### FUNCTION g_spawn_async_with_pipes ##### --> |
| <para> |
| |
| </para> |
| |
| @working_directory: |
| @argv: |
| @envp: |
| @flags: |
| @child_setup: |
| @user_data: |
| @child_pid: |
| @standard_input: |
| @standard_output: |
| @standard_error: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_spawn_async ##### --> |
| <para> |
| |
| </para> |
| |
| @working_directory: |
| @argv: |
| @envp: |
| @flags: |
| @child_setup: |
| @user_data: |
| @child_pid: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_spawn_sync ##### --> |
| <para> |
| |
| </para> |
| |
| @working_directory: |
| @argv: |
| @envp: |
| @flags: |
| @child_setup: |
| @user_data: |
| @standard_output: |
| @standard_error: |
| @exit_status: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_spawn_command_line_async ##### --> |
| <para> |
| |
| </para> |
| |
| @command_line: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_spawn_command_line_sync ##### --> |
| <para> |
| |
| </para> |
| |
| @command_line: |
| @standard_output: |
| @standard_error: |
| @exit_status: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_spawn_close_pid ##### --> |
| <para> |
| |
| </para> |
| |
| @pid: |
| |
| |