函数
GLibspawn_async
声明 [源代码]
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
)
描述 [源代码]
异步执行子程序。
有关完整描述,请参阅 g_spawn_async_with_pipes();此函数仅调用 g_spawn_async_with_pipes(),而不使用任何管道。
当不再需要时,你应当对返回的子进程引用调用 g_spawn_close_pid()。
如果你正在编写 GTK 应用程序,并且你正在生成的可执行程序也是图形应用程序,那么为确保生成的可执行程序在其正确的屏幕上打开窗口,你可能需要使用 GdkAppLaunchContext 和 GAppLaunchContext,或设置 DISPLAY 环境变量。
请注意,Windows 上返回的 child_pid 是指向子进程的句柄,而不是其实例标识符。在 Windows 上,进程句柄和进程标识符是不同的概念。
参数
working_directory-
类型:
const gchar*子程序的当前工作目录,或
NULL表示继承父目录。该参数可以为 NULL。数据由调用函数所有。 该值是平台原生字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。 argv-
类型:
filename数组child's argument vector.该数组必须以 NULL结尾。数据由调用函数所有。 在 Unix 上,每个元素都是平台原生字符串,使用首选操作系统编码。在 Windows 上,每个元素是 UTF-8 平台原生字符串。 envp-
类型:
filename数组child's environment, or `NULL` to inherit parent's.该参数可以为 NULL。该数组必须以 NULL结尾。数据由调用函数所有。 在 Unix 上,每个元素都是平台原生字符串,使用首选操作系统编码。在 Windows 上,每个元素是 UTF-8 平台原生字符串。 flags-
类型:
GSpawnFlagsGSpawnFlags中的标志。 child_setup-
在
exec()之前在子程序中运行的函数。该参数可以为 NULL。 user_data-
类型:
gpointerchild_setup的用户数据。该参数可以为 NULL。数据由调用函数所有。 child_pid-
类型:
GPid子进程引用的返回位置,或
NULL。返回位置将由该函数设置。 该参数可以为 NULL。调用函数将对返回的数据拥有所有权,并负责释放数据。 error-
类型:
GError **可恢复错误 的返回位置。
该参数可以为 NULL。如果返回位置不为 NULL,则你必须将其初始化为NULLGError*。如果没有错误,返回位置将被该函数初始化并留为 NULL。如果出现错误,则将把返回位置设置为一个新分配的 GError;调用方将对数据拥有所有权,并负责释放数据。