结构体

GLibByteArray

描述 [源代码]

struct GByteArray {
  guint8* data;
  guint len;
}

包含 GByteArray 的公有字段。

结构成员
data

指向元素数据的指针。当元素添加到 GByteArray 时,数据可能会移动。

len

GByteArray 中的元素数量。

函数

g_byte_array_append

将给定的字节添加到 GByteArray 末尾。如有必要,数组将自动增长大小。

g_byte_array_free

释放 GByteArray 分配的内存。如果 free_segment 为 TRUE,则释放实际字节数据。如果 array 的引用计数大于 1,GByteArray 包装器将被保留,但 array 的大小将设置为 0。

g_byte_array_free_to_bytes

将数据从 GByteArray 传输到新的不可变 GBytes。

自:2.32

g_byte_array_new

创建一个引用计数为 1 的新 GByteArray。

g_byte_array_new_take

创建一个包含 data 的字节数组。此调用后,data 属于 GByteArray,调用者不能再对其进行修改。data 的内存必须动态分配,最终将用 g_free() 释放。

自:2.32

g_byte_array_prepend

将给定数据添加到 GByteArray 的开头。如有必要,数组将自动增长大小。

g_byte_array_ref

原子地将 array 的引用计数加一。此函数是线程安全的,可以从任何线程调用。

自:2.22

g_byte_array_remove_index

从 GByteArray 中移除给定索引处的字节。将后面的字节向下移动一位。

g_byte_array_remove_index_fast

从 GByteArray 中移除给定索引处的字节。数组中的最后一个元素用于填充空间,所以此函数不会保留 GByteArray 的顺序。但它比 g_byte_array_remove_index() 快。

g_byte_array_remove_range

从 GByteArray 中移除从给定索引处开始的给定数量的字节。关闭间隙时,后面的元素将被移动。

自:2.4

g_byte_array_set_size

设置 GByteArray 的大小,如有必要则扩展它。

g_byte_array_sized_new

创建一个新的 GByteArray,预先分配 reserved_size 字节。如果你要向数组添加许多字节,这可以避免频繁的重新分配。但请注意,数组的大小仍然是 0。

g_byte_array_sort

对一个字节数组进行排序,使用 compare_func,该函数应为 qsort()-style 比较函数(第一个参数小于第二个参数时返回小于 0,相等时返回 0,第一个参数大于第二个参数时返回大于 0)。

g_byte_array_sort_with_data

与 g_byte_array_sort()类似,但比较函数需要额外的用户数据参数。

g_byte_array_steal

释放数组中的数据并将大小重置为 0,同时保留基础数组以供其他地方使用并将其返回给调用者。

since: 2.64

g_byte_array_unref

array 的引用计数原子地减一。如果引用计数降至 0,则释放数组分配的所有内存。此函数是线程安全的,可以从任何线程调用。

自:2.22