函数
GLibVariantparse
声明 [源]
GVariant*
g_variant_parse (
const GVariantType* type,
const gchar* text,
const gchar* limit,
const gchar** endptr,
GError** error
)
描述 [源]
解析一个文本形式的 GVariant
。
从 text
的内容中解析出一个单个的 GVariant
。
格式描述在这里。
在 limit
位置的内存永远不会被访问,解析器会像字符在 limit
处是空终止符一样操作。这会有界 text
。
如果 endptr
不是 NULL
,那么 text
允许包含该函数解析的值的后续数据,并且 endptr
将更新为指向该函数解析的文本结尾之后的第一个字符。如果 endptr
是 NULL
并且有额外的数据,则返回一个错误。
如果 type
不是 NULL
,则将该值解析为该类型。这可能会产生额外的解析错误(在这种情况下,解析的值不适用于该类型),但也可能导致更少的错误(在这种情况下,类型可能是模糊的,例如空数组)。
如果解析成功,将返回结果 GVariant
。它绝不浮点,并且必须使用 g_variant_unref()
释放。
如果发生任何错误,将返回 NULL
。如果 error
不是 NULL
,则它将设置为反映发生的错误。
官方上,解析器所理解的语言是“由 g_variant_print()
生成的任何字符串”。这明确包括 g_variant_print()
的注释类型,如 int64 -1000
。
对于深层嵌套的值,可能有实现特定的限制,这将导致 G_VARIANT_PARSE_ERROR_RECURSION
错误。确保 GVariant
至少可以处理 64 层嵌套。
参数
type
-
类型:
GVariantType
一个
GVariantType
,或NULL
。参数可以是 NULL
。数据由函数的调用者拥有。 text
-
类型:
const gchar*
包含 GVariant 文本形式的字符串。
数据由函数的调用者拥有。 值是终止的 UTF-8 字符串。 limit
-
类型:
const gchar*
指向
text
结束的指针,或NULL
。参数可以是 NULL
。数据由函数的调用者拥有。 值是终止的 UTF-8 字符串。 endptr
-
类型:
const gchar**
用于存储结束指针的位置,或
NULL
。参数可以是 NULL
。数据由函数的调用者拥有。 值是终止的 UTF-8 字符串。 error
-
类型:
GError **
恢复错误的位置。
参数可以是 NULL
。如果返回位置不是 NULL
,则你必须初始化它为一个NULL
的GError*
。如果没有错误,函数将保持该参数初始化为 NULL
。在出现错误的情况下,参数将被设置为一个新的 GError
;调用者将获得该数据的所有权,并负责释放它。
返回值
类型: GVariant
指向 GVariant
的非浮点引用,或 NULL
。
函数调用者将获得数据所有权,并负责释放它。 |