函数
GLibspawn_command_line_sync
声明 [源代码]
gboolean
g_spawn_command_line_sync (
const gchar* command_line,
gchar** standard_output,
gchar** standard_error,
gint* wait_status,
GError** error
)
描述 [源代码]
这是g_spawn_sync()的一个简化版本,去掉了不常用的参数,接受命令行而不是参数列表。
请参见g_spawn_sync()获取详细信息。
将使用g_shell_parse_argv()解析command_line
参数。
与g_spawn_sync()不同,启用了G_SPAWN_SEARCH_PATH
标志。请注意,G_SPAWN_SEARCH_PATH
可能会有安全影响,如果合适,请考虑直接使用g_spawn_sync()。
可能发生的错误包括来自g_spawn_sync()和g_shell_parse_argv()的错误。
如果wait_status
不为NULL,则将存储子平台特定状态的位置;有关如何使用和解释此信息,请参阅g_spawn_check_wait_status()的文档。在Unix平台上,请注意它与传递给exit()的整数或从main()返回的整数通常不相等。
在Windows上,请注意g_shell_parse_argv()解析command_line的影响。解析是根据Unix shell规则进行的,而不是Windows命令解释器的规则。空格是分隔符,反斜杠是特殊的。因此,不能简单地传递包含规范Windows路径的命令行(例如“c:\program files\app\app.exe”),因为反斜杠将被吃掉,空格将作为分隔符。您需要用单引号将这些路径括起来,如“‘c:\program files\app\app.exe’ ‘e:\folder\argument.txt’”。
参数
command_line
-
类型:const gchar*
命令行。
数据由函数的调用者拥有。 值是平台原生的字符串,在Unix上使用首选的OS编码,在Windows上使用UTF-8。 standard_output
-
类型:一个guint8数组
子输出返回位置。
该参数将由函数设置。 该参数可以是NULL。 数组必须NULL终止。 调用函数的调用者将获取返回数据的所有权,并对释放它负责。 standard_error
-
类型:一个guint8数组
子错误返回位置。
该参数将由函数设置。 该参数可以是NULL。 数组必须NULL终止。 调用函数的调用者将获取返回数据的所有权,并对释放它负责。 wait_status
-
类型:gint*
子等待状态返回位置,如同waitpid()返回的。
该参数将由函数设置。 该参数可以是NULL。 error
-
类型:GError **
用于恢复错误的返回位置。
该参数可以是NULL。 如果返回位置不是NULL,则必须将其初始化为NULL GError*。 如果没有错误,函数将保留初始化到NULL。 出错时,参数将设置为新分配的GError;调用者将获取数据所有权,并负责释放它。