结构
GLibBytes
自:2.32 起
说明 [src]
struct GBytes {
/* No available fields */
}
表示一个不可变的从非特定 来源的零或多个字节序列的简单引用计数数据类型。
GBytes
的目的是当任何人拥有字节的引用时保持它所包含的内存区域存活。当最后一个引用计数被释放时,内存将被释放。多个无关的调用者可以在 GBytes
中使用字节数据而不协调他们的活动,确信字节数据在他们持有 引用时不会更改或移动。
GBytes
可以来自许多具有释放内存区域的不同过程的不同来源。示例是来自 g_malloc()
的内存,来自内存切片,来自 GMappedFile
或来自其他 分配器的内存。
GBytes
在 GHashTable
中作为键时效果很好。使用 g_bytes_equal()
和 g_bytes_hash()
作为 g_hash_table_new()
或 g_hash_table_new_full()
的参数。GBytes
也可以通过将 g_bytes_compare()
函数传递给 g_tree_new()
,作为 GTree
中的键。
此字节所指向的数据不得修改。对于可变字节数组,请参阅 GByteArray
。使用 g_bytes_unref_to_array()
为 GBytes
序列创建可变数组。要从可变 GByteArray
创建不可变的 GBytes
,请使用 g_byte_array_free_to_bytes()
函数。
自 2.32 起可用