snprintf:
数原型:
int snprintf(char *str, size_t size, const char *format, ...);
size 的作用就是限制往str写入不超过size个字节(包括了结尾的‘/0‘)。
因为sprintf()函数如果成功的话,返回成功写入的字节数(字符数),我就一直以为snprintf()函数也是如此,也就是snprintf()函数不会返回大于size的整数。
……如果输出因为size的限制而被截断,返回值将是“如果有足够空间存储,所
应 能输出的字符数(不包括字符串结尾的‘/0‘)”,这个值和size相等或者比size大!也就是说,如果可以写入的字符串是 "0123456789ABCDEF" 共16位,但是size限制了是10,这样 snprintf() 的返回值将会是
16 而不是 10 !
上面的内容还说,如果返回值等于或者大于size,则表明输出字符串被截断了(truncated)。