方法
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 版本开始可用