函数

GLibchild_watch_add

自 2.4 起

声明 [src]

guint
g_child_watch_add (
  GPid pid,
  GChildWatchFunc function,
  gpointer data
)

说明 [src]

设置函数在 pid 表示的子进程退出时调用该函数,使用默认优先级 G_PRIORITY_DEFAULT

如果您从 g_spawn_async()g_spawn_async_with_pipes() 获取了 pid,则需要将 G_SPAWN_DO_NOT_REAP_CHILD 作为标志传给该子进程,以便监视子进程正常工作。

请注意,在必须显式关闭 GPid 的平台(请参阅 g_spawn_close_pid())上,在源仍然活动时不得关闭 pid。通常,您将希望在源的回调函数中调用 g_spawn_close_pid()

GLib 仅支持对每个进程 ID 单个回调。在 POSIX 平台上,与 g_child_watch_source_new() 提到的相同限制适用于此函数。

此函数在内部使用 g_child_watch_source_new() 创建主循环源,并使用 g_source_attach() 将其附加到主循环上下文。如果您需要更大的控制权,可以手动执行这些步骤。

自 2.4 起可用

语言绑定直接无法使用此函数。

语言绑定中由 g_child_watch_add_full() 提供此函数的实现。

参数

pid

类型: GPid

要监视的进程 ID。在 POSIX 上为子进程的正 pid。在 Windows 上为进程句柄(它不必是子进程)。

function

类型: GChildWatchFunc

要调用的函数。

data

类型: gpointer

传递到 function 的数据。

此参数可以为 NULL
该数据由函数的调用方所有。

返回值

类型: guint

事件源的 ID(大于 0)。