函数

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;调用者将获取数据所有权,并负责释放它。

返回值

类型:gboolean

成功时返回TRUE,如果设置了错误则返回FALSE。