方法

GLibVariantget_data

since: 2.24

声明 [src]

gconstpointer
g_variant_get_data (
  GVariant* value
)

描述 [src]

返回一个指向GVariant实例序列化形式的指针。如果从不受信任的源读取,则返回的数据可能不在完全规范化形式中。返回的数据不得释放;只要value存在,它就保持有效。

如果value是一个从损坏的序列化容器反序列化的固定大小的值,则可能返回NULL。在这种情况下,通常应使用适当数量的null字节来代替value。如果value不是固定大小的,则从不返回NULL。

如果value已经在序列化形式中,该函数是O(1)。如果值尚未以序列化形式存在,则隐式序列化发生,并且大约O(n)的尺寸与结果的大小成正比。

要将此函数返回的数据反序列化,除了序列化数据之外,还需要知道
GVariant的类型,以及(如果机器可能不同)存储它的机器的端序。因此,包含序列化
GVariants的文件格式或网络消息必须以隐式(例如,“该文件始终包含
G_VARIANT_TYPE_VARIANT并且总是以小端序排列”)或显式(通过将类型和/或端序存储在序列化数据
中)的方式包含这些信息。

自 2.24 版本开始可用

返回值

类型: gconstpointer

value的序列化形式,或NULL

返回的数据由实例所有。
返回值可以是NULL