函数
GLibspawn_sync
声明 [src]
gboolean
g_spawn_sync (
const gchar* working_directory,
gchar** argv,
gchar** envp,
GSpawnFlags flags,
GSpawnChildSetupFunc child_setup,
gpointer user_data,
gchar** standard_output,
gchar** standard_error,
gint* wait_status,
GError** error
)
说明 [src]
同步执行一个子项(在子项退出之前等待其退出)。
如果这些参数为非 NULL
,则将子项的所有输出存储在 standard_output
和 standard_error
中。请注意,在为 standard_output
和 standard_error
传递 NULL
时,你必须设置 G_SPAWN_STDOUT_TO_DEV_NULL
和 G_SPAWN_STDERR_TO_DEV_NULL
标志。
如果 wait_status
为非 NULL
,则子项的平台特定状态会存储在那里;有关如何使用和解释它的详细信息,请参见 g_spawn_check_wait_status()
的文档。在 Unix 平台上,请注意它通常不等于传递给 exit()
或从 main()
返回的整数。
请注意,在 flags
中传递 G_SPAWN_DO_NOT_REAP_CHILD
是无效的,并且在 POSIX 平台上,与 g_child_watch_source_new()
相同的限制也适用。
如果发生错误,则不会在 standard_output
、standard_error
或 wait_status
中返回任何数据。
此函数在内部调用 g_spawn_async_with_pipes()
;有关其他参数的详细信息以及如何在 Windows 上使用这些函数,请参见该函数。
参数
working_directory
-
类型:
const gchar*
子项当前的工作目录,或
NULL
以继承父项。该参数可以是 NULL
。数据由函数调用者拥有。 该值是平台原生字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。 argv
-
类型:
filename
数组child's argument vector, which must be non-empty and `NULL`-terminated.
该数组必须以 NULL
结尾。数据由函数调用者拥有。 每个元素都是一个平台原生字符串,在 Unix 上使用首选 OS 编码,在 Windows 上使用 UTF-8。 envp
-
类型:
filename
数组child's environment, or `NULL` to inherit parent's.
该参数可以是 NULL
。该数组必须以 NULL
结尾。数据由函数调用者拥有。 每个元素都是一个平台原生字符串,在 Unix 上使用首选 OS 编码,在 Windows 上使用 UTF-8。 flags
-
类型:
GSpawnFlags
来自
GSpawnFlags
的标志。 child_setup
-
在
exec()
之前在子项中运行的函数。该参数可以是 NULL
。 user_data
-
类型:
gpointer
child_setup
的用户数据。该参数可以是 NULL
。数据由函数调用者拥有。 standard_output
-
类型:
guint8
数组子项输出的返回位置,或
NULL
。该参数将由函数设置。 该参数可以是 NULL
。该数组必须以 NULL
结尾。函数调用者获取返回的数据的所有权,并负责释放它。 standard_error
-
类型:
guint8
数组子项错误信息的返回位置,或
NULL
。该参数将由函数设置。 该参数可以是 NULL
。该数组必须以 NULL
结尾。函数调用者获取返回的数据的所有权,并负责释放它。 wait_status
-
类型:
gint*
子项等待状态的返回位置(由 waitpid() 返回),或
NULL
。该参数将由函数设置。 该参数可以是 NULL
。 error
-
类型:
GError **
用于 可恢复错误 的返回位置。
该参数可以是 NULL
。如果返回位置不为 NULL
,则必须将其初始化为NULL
GError*
。如果没有错误,则参数将由函数初始化并留空。 如果发生错误,该参数将被设置为新分配的 GError
;调用者将获取数据的全部所有权,并负责释放它。