马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
snprintf 函数文档
函数概要:
snprintf 函数是 sprintf 函数的安全版本,因为它在调用的时候需要指定缓冲区的最大尺寸,这样可以有效避免缓冲区溢出。
如果写入的字符串尺寸大于 size - 1,那么后边的字符将被丢弃,但依旧会统计进长度中(返回值)。
format 参数后边的额外参数数量由 format 决定,具体用法请参考 printf 函数中格式化占位符的解释。
函数原型:
#include <strdio.h>
...
int snprintf(char *str, size_t size, const char *format, ...);
参数解析:
参数 | 含义 | str | 指向存放结果字符串的缓冲区 | size | 1. 限定缓冲区最大可写入的字节数
2. 字符串最多可以拥有 size - 1 个字符,最后一个空位用于存放 '\0'
3. size_t 被定义为无符号整型 | format | 格式化字符串 | ... | 可选参数,具体请参考 printf 函数文档 |
返回值:
如果指定 size 的缓冲区足够存放写入的字符,返回值是实际写入的字符数(不包含表示字符串结束的 '\0');
如果函数调用失败,返回值是一个负数。
注意:
1. 试图写入字符的数量超过 size,并不会导致错误的发生,只是超出部分被丢弃。
2. 只有当返回值小于 size 且非负数,才证明字符串被完全写入。
演示:
#include <stdio.h>
int main()
{
char buffer[6];
int n;
n = snprintf(buffer, 6, "FishC.com");
printf("buffer:%s\n", buffer);
printf("n:%d\n", n);
return 0;
}
版权归鱼C工作室(www.fishc.com)所有,转载请注明来源!
|