文档章节

snprintf函数用法

SBaof
 SBaof
发布于 2015/08/07 17:36
字数 240
阅读 131
收藏 0

函数原型

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

功能

将可变个参数(...)按照format格式化成字符串,然后将其复制到str中

(1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0');

(2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\0'),返回值为欲写入的字符串长度。

返回值

若成功则返回欲写入的字符串长度,若出错则返回负值

说明

strcpy() sprintf() strcat() 存在安全隐患,没有越界检查, 其对应的安全版为:

strncpy() snprintf() strncat()

举个例子

#include<stdio.h>
#include<stdlib.h>
int main()
{
  char str[10]={0};
  int nLen=snprintf(str,sizeof(str),"0123456789012345678");
  printf("str=%s\n",str);
  printf("nLen=%d\n",nLen);
  return 0;
}

运行结果


本文转载自:http://baike.baidu.com/link?url=3b-1G2KRMNqcJQk60JabJW-3AcpiV32E-kkxnDzDCTbnM6tzgHFLVa4caYVahYzbc...

SBaof
粉丝 0
博文 19
码字总数 4788
作品 0
武汉
私信 提问
谈谈snprintf

众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf. snprintf(_snprintf)的声明是这样的 int _snprintf( char *buffer, size_t count, const char ...

长平狐
2013/01/06
74
0
snprintf和sprintf区别分析

今天在项目中使用snprintf时遇到一个比较迷惑的问题,追根溯源了一下,在此对sprintf和snprintf进行一下对比分析。 因为sprintf可能导致缓冲区溢出问题而不被推荐使用,所以在项目中我一直优...

水海云
2013/11/18
0
1
sprintf和snprintf的正确使用

关于sprintf和snprintf的正确使用考虑以下有缺陷的例子: void f(const char *p) { char buf[11]={0}; sprintf(buf,"%10s",p); // very dangerous printf("%sn",buf); } 不要让格式标记“%10......

陈文东
2012/09/03
0
0
linux c/c++ 面试题目整理(一)

1、求下面函数的返回值 问:假定x是9999,那么返回多少? 答:返回的是8,解题思路是将x转化为二进制,看含有多少个1,则就返回多少。 2、文件中有一组整数,要求排序后输出到另一个文件中 ...

晟夏的叶
2017/04/19
0
0
snprintf()函数返回值

函数原型: int snprintf(char str, size_t size, const char format, ...); size 的作用就是限制往str写入不超过size个字节(包括了结尾的'0')。 因为sprintf()函数如果成功的话,返回成功写...

呼噜呼噜睡翻天
2012/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud底层原理

毫无疑问,Spring Cloud 是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。 不过大多数讲解还停留在对 Spring Cloud 功能使用的层面,其底层的很多原理,很多人可能并不知晓。 ...

月下狼
6分钟前
0
0
Linux重启Tomcat

在测试过程中,要构建测试环境,还经常要重启Tomcat排查问题,重启Tomcat的步骤: 1、首先查看Tomcat是否有启动或重复启动? 输入命令ps -aux|grep java按回车键,可见下图,是有一个Tomcat启...

测试龙管家
7分钟前
0
0
Gartner:阿里云亚太市场份额第一,超过亚马逊和微软总和

4月24日,据彭博社报道,阿里云在亚太云计算市场份额达19.6%,超过亚马逊和微软的总和。这是阿里云连续第二年位居亚太市场第一,份额同比上年增长4.7个百分点,持续扩大领先优势。 报道引述研...

阿里云云栖社区
22分钟前
0
0
Webpack打包优化:使用外链与拆包模式

一、发现问题 这是一个基于 vue-cli 的管理后台项目,由于依赖较多,打包结果如下 二、查找原因 为什么 vendor 体积这么大? 引用的库太多时,vendor的体积会很大,借助 Webpack 的分析工具,...

AI考拉
51分钟前
2
0
ES 集群上,业务单点如何优化升级?

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一、ES 基础 ES 的安装下载,网上一大片,我这...

泥瓦匠BYSocket
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部