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