| <!-- ##### SECTION Title ##### --> |
| Spawning Processes |
| |
| <!-- ##### SECTION Short_Description ##### --> |
| process launching with fork()/exec() |
| |
| <!-- ##### SECTION Long_Description ##### --> |
| <para> |
| |
| </para> |
| |
| <!-- ##### SECTION See_Also ##### --> |
| <para> |
| |
| </para> |
| |
| <!-- ##### SECTION Stability_Level ##### --> |
| |
| |
| <!-- ##### 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: execv() returned %EACCES. |
| @G_SPAWN_ERROR_PERM: execv() returned %EPERM. |
| @G_SPAWN_ERROR_2BIG: execv() returned %E2BIG. |
| @G_SPAWN_ERROR_NOEXEC: execv() returned %ENOEXEC. |
| @G_SPAWN_ERROR_NAMETOOLONG: execv() returned %ENAMETOOLONG. |
| @G_SPAWN_ERROR_NOENT: execv() returned %ENOENT. |
| @G_SPAWN_ERROR_NOMEM: execv() returned %ENOMEM. |
| @G_SPAWN_ERROR_NOTDIR: execv() returned %ENOTDIR. |
| @G_SPAWN_ERROR_LOOP: execv() returned %ELOOP. |
| @G_SPAWN_ERROR_TXTBUSY: execv() returned %ETXTBUSY. |
| @G_SPAWN_ERROR_IO: execv() returned %EIO. |
| @G_SPAWN_ERROR_NFILE: execv() returned %ENFILE. |
| @G_SPAWN_ERROR_MFILE: execv() returned %EMFILE. |
| @G_SPAWN_ERROR_INVAL: execv() returned %EINVAL. |
| @G_SPAWN_ERROR_ISDIR: execv() returned %EISDIR. |
| @G_SPAWN_ERROR_LIBBAD: execv() 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 exec() in the child. |
| @G_SPAWN_DO_NOT_REAP_CHILD: the child will not be automatically reaped; you |
| must use g_child_watch_add() yourself (or call waitpid() |
| 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 standard 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(). On POSIX platforms it |
| is called in the child after GLib has performed all the setup it plans |
| to perform but before calling exec(). On POSIX actions taken in this |
| function will thus only affect the child, not the parent. |
| </para> |
| |
| <para> |
| On Windows the function is called in the parent. Its usefulness on |
| Windows is thus questionable. In many cases executing the child setup |
| function in the parent can have ill effects, and you should be very |
| careful when porting software to Windows that uses child setup |
| functions. |
| </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: |
| |
| |