函数
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
要插入到输出中的参数列表。