函数

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 应用程序,并且你正在生成的可执行程序也是图形应用程序,那么为确保生成的可执行程序在其正确的屏幕上打开窗口,你可能需要使用 GdkAppLaunchContextGAppLaunchContext,或设置 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

类型: GSpawnChildSetupFunc

exec() 之前在子程序中运行的函数。

该参数可以为 NULL
user_data

类型: gpointer

child_setup 的用户数据。

该参数可以为 NULL
数据由调用函数所有。
child_pid

类型: GPid

子进程引用的返回位置,或 NULL

返回位置将由该函数设置。
该参数可以为 NULL
调用函数将对返回的数据拥有所有权,并负责释放数据。
error

类型: GError **

可恢复错误 的返回位置。

该参数可以为 NULL
如果返回位置不为 NULL,则你必须将其初始化为 NULL GError*
如果没有错误,返回位置将被该函数初始化并留为 NULL
如果出现错误,则将把返回位置设置为一个新分配的 GError;调用方将对数据拥有所有权,并负责释放数据。

返回值

类型: gboolean

如果成功则为 TRUE,如果设置了错误则为 FALSE