linux服务器开发(日志部分)snprintf()

一 snprintf()函数

函数原型:

int snprintf(char *buf,size_t size,const char *format,...)

buf:接收数据的缓冲区;

size:接收数据的大小;
两点注意:
(1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符(‘\0’);
(2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符(‘\0’),返回值为欲写入的字符串长度。

format:如%d%s等,指定输出数据的格式

…: 输出到缓冲区中的数据

返回值:失败返回负数,返回输入数据的总字节数

二 sprintf()函数的使用

char buf[8];
int n = snprintf(buf, 5, "abcdefghijk");
printf("n %d    buf %s\n", n, buf);
 
运行结果为:
n 11    buf abcd

我们可以看到snprintf()第二个参数是5,实际只保存了4个字节,原因是size-1=实际存放可以的字节数;
因为size的大小包含‘/0’这个字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值