函数
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-
类型:
gpointerchild_setup的用户数据。该参数可以是 NULL。数据由函数调用者拥有。 standard_output-
类型:
guint8数组子项输出的返回位置,或
NULL。该参数将由函数设置。 该参数可以是 NULL。该数组必须以 NULL结尾。函数调用者获取返回的数据的所有权,并负责释放它。 standard_error-
类型:
guint8数组子项错误信息的返回位置,或
NULL。该参数将由函数设置。 该参数可以是 NULL。该数组必须以 NULL结尾。函数调用者获取返回的数据的所有权,并负责释放它。 wait_status-
类型:
gint*子项等待状态的返回位置(由 waitpid() 返回),或
NULL。该参数将由函数设置。 该参数可以是 NULL。 error-
类型:
GError **用于 可恢复错误 的返回位置。
该参数可以是 NULL。如果返回位置不为 NULL,则必须将其初始化为NULLGError*。如果没有错误,则参数将由函数初始化并留空。 如果发生错误,该参数将被设置为新分配的 GError;调用者将获取数据的全部所有权,并负责释放它。