功能

GLibshell_parse_argv

声明 [源代码]

gboolean
g_shell_parse_argv (
  const gchar* command_line,
  gint* argcp,
  gchar*** argvp,
  GError** error
)

说明 [源代码]

以与 shell 类似的方式将命令行解析为一个参数向量,但没有 shell 执行的许多展开(变量展开、glob、运算符、文件名展开等不受支持)。

只要输入不包含任何不受支持的 shell 展开,结果就定义为与从 UNIX98 /bin/sh 获得的结果相同。如果输入确实包含此类展开,它们将被逐字传递。

可能错误为来自 G_SHELL_ERROR 域的错误。

特别是,如果 command_line 是一个空字符串(或一个仅包含空格的字符串),将返回 G_SHELL_ERROR_EMPTY_STRING。如果此函数返回成功,则保证 argvp 将成为一个非空数组。

使用 g_strfreev() 释放返回的向量。

参数

command_line

类型: const gchar*

要解析的命令行。

数据由函数的调用者所有。
值为本机平台字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。
argcp

类型: gint*

参数数量的返回位置。

参数将由函数设置。
参数可以为 NULL
argvp

类型: filename 的一个数组

args 数组的返回位置。

参数将由函数设置。
参数可以为 NULL
数组必须以 NULL 结尾。
数组的长度在 argcp 参数中指定。
函数的调用者负责返回的数据的所有权,并负责释放它。
每个元素都是本机平台字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。
error

类型: GError **

可恢复错误 的返回位置。

参数可以为 NULL
如果返回位置不为 NULL,那么你必须将其初始化为 NULL GError*
如果不存在错误,该参数将由函数初始化为 NULL
在出现错误的情况下,该参数将设置为一个新分配的 GError;调用者将负责数据的所有权,并负责释放它。

返回值

类型: gboolean

成功时为 TRUE,在设置错误时为 FALSE