函数

GLibvsnprintf

声明 [src]

gint
g_vsnprintf (
  gchar* string,
  gulong n,
  const gchar* format,
  va_list args
)

说明 [src]

一种更安全的标准 vsprintf() 函数。输出保证不超过 n 个字符(包括终止空字符),因此很容易确保不会发生缓冲区溢出。

另请参阅 g_strdup_vprintf()

在 1.2.3 之前的 GLib 版本中,如果输出已被截断,此函数可能会返回 -1,并且截断的字符串可能不是空终止的。在 1.3.12 之前的版本中,此函数返回输出字符串的长度。

g_vsnprintf() 的返回值遵循 ISO C99 中标准化的 vsnprintf() 函数。请注意,这不同于传统的 vsnprintf(),后者返回输出字符串的长度。

格式字符串可以包含位置参数,如单一类 Unix 规范中指定的。

此函数不直接提供给语言绑定。

参数

string

类型: gchar*

用于保存输出的缓冲区。

数据由函数调用者所有。
该值是一个以 NUL 终止的 UTF-8 字符串。
n

类型: gulong

要生成的最大字节数(包括终止空字符)。

format

类型: const gchar*

标准 printf() 格式字符串,但请注意字符串精度陷阱

数据由函数调用者所有。
该值是一个以 NUL 终止的 UTF-8 字符串。
args

类型: va_list

要插入到输出中的参数列表。

返回值

类型: gint

如果缓冲区足够大,将生成字节数。