函数
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
-
类型:
GSpawnFlags
GSpawnFlags
中的标志。 child_setup
-
在
exec()
之前在子程序中运行的函数。该参数可以为 NULL
。 user_data
-
类型:
gpointer
child_setup
的用户数据。该参数可以为 NULL
。数据由调用函数所有。 child_pid
-
类型:
GPid
子进程引用的返回位置,或
NULL
。返回位置将由该函数设置。 该参数可以为 NULL
。调用函数将对返回的数据拥有所有权,并负责释放数据。 error
-
类型:
GError **
可恢复错误 的返回位置。
该参数可以为 NULL
。如果返回位置不为 NULL
,则你必须将其初始化为NULL
GError*
。如果没有错误,返回位置将被该函数初始化并留为 NULL
。如果出现错误,则将把返回位置设置为一个新分配的 GError
;调用方将对数据拥有所有权,并负责释放数据。