函数

GLibsnprintf

声明 [src]

gint
g_snprintf (
  gchar* string,
  gulong n,
  const gchar* format,
  ...
)

描述 [src]

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

还请参阅 g_strdup_printf()

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

g_snprintf() 的返回值符合 ISO C99 中标准化的 snprintf() 函数。请注意,这与传统 snprintf() 不同,后者返回输出字符串的长度。

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

该函数不能直接供语言绑定使用。

参数

string

类型: gchar*

用于保存输出的缓冲区。

数据由该函数的调用方拥有。
该值是一个空值结尾的 UTF-8 字符串。
n

类型: gulong

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

format

类型: const gchar*

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

数据由该函数的调用方拥有。
该值是一个空值结尾的 UTF-8 字符串。
...

类型: 

要插入输出中的参数。

返回值

类型: gint

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