函数
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()
将其附加到主循环上下文。如果您需要更大的控制权,可以手动执行这些步骤。
参数
pid
-
类型:
GPid
要监视的进程 ID。在 POSIX 上为子进程的正 pid。在 Windows 上为进程句柄(它不必是子进程)。
function
-
类型:
GChildWatchFunc
要调用的函数。
data
-
类型:
gpointer
传递到
function
的数据。此参数可以为 NULL
。该数据由函数的调用方所有。