函数

GLibstrlcat

声明 [源代码]

gsize
g_strlcat (
  gchar* dest,
  const gchar* src,
  gsize dest_size
)

说明 [源代码]

可移植封装,在有它的系统上调用 strlcat(),否则模拟它。将以空值结尾的 src 字符串附加到 dest,确保 dest 以空值结尾。dest 的总大小不会超过 dest_size

最多复制 dest_size - 1 个字符。与 strncat() 不同,dest_size 是 dest 的完整大小,而不是剩余空间。此函数不分配内存。它总是以空值结尾(除非 dest_size == 0 或 dest 的 dest_size 个字符中没有空字符)。

警告:这理论上是 strcat()strncat() 更安全的替代方案,但对于真正的安全性,g_strconcat() 更难混淆。

参数

dest

类型: gchar*

目标缓冲区,已包含一个以空值结尾的字符串。

数据归函数调用者所有。
此值为一个空值结尾的 UTF-8 字符串。
src

类型: const gchar*

源缓冲区。

数据归函数调用者所有。
此值为一个空值结尾的 UTF-8 字符串。
dest_size

类型: gsize

目标 dest 缓冲区长度(以字节计)(而不是 dest 中现有字符串的长度)。

返回值

类型: gsize

尝试的结果大小,即 MIN (dest_size, strlen (original dest)) + strlen (src),因此,如果 retval >= dest_size,则发生了截断。