Function

GLibspawn_async

Declaration

gboolean
g_spawn_async (
  const gchar* working_directory,
  gchar** argv,
  gchar** envp,
  GSpawnFlags flags,
  GSpawnChildSetupFunc child_setup,
  gpointer user_data,
  GPid* child_pid,
  GError** error
)

Description

Executes a child program asynchronously.

See g_spawn_async_with_pipes() for a full description; this function simply calls the g_spawn_async_with_pipes() without any pipes.

You should call g_spawn_close_pid() on the returned child process reference when you don’t need it any more.

If you are writing a GTK application, and the program you are spawning is a graphical application too, then to ensure that the spawned program opens its windows on the right screen, you may want to use GdkAppLaunchContext, GAppLaunchContext, or set the DISPLAY environment variable.

Note that the returned child_pid on Windows is a handle to the child process and not its identifier. Process handles and process identifiers are different concepts on Windows.

Parameters

working_directory

Type: const gchar*

Child’s current working directory, or NULL to inherit parent’s.

The argument can be NULL.
The data is owned by the caller of the function.
The value is a file system path, using the OS encoding.
argv

Type: An array of filename

child's argument vector.

The array must be NULL-terminated.
The data is owned by the caller of the function.
Each element is a file system path, using the OS encoding.
envp

Type: An array of filename

child's environment, or `NULL` to inherit parent's.

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 file system path, using the OS encoding.
flags

Type: GSpawnFlags

Flags from GSpawnFlags.

child_setup

Type: GSpawnChildSetupFunc

Function to run in the child just before exec()

The argument can be NULL.
user_data

Type: gpointer

User data for child_setup.

The argument can be NULL.
The data is owned by the caller of the function.
child_pid

Type: GPid

Return location for child process reference, or NULL.

The argument will be set by the function.
The argument can be NULL.
The called function takes ownership of the data, and is responsible for freeing it.
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 a NULL GError*.
The argument will 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.

Return value

Type: gboolean

TRUE on success, FALSE if error is set.