_snprintf_s
int _snprintf_s(char *buffer,size_t sizeOfBuffer,size_t count,const char *format [,argument] ... );
1. sizeofBuffer,打算用于存储的缓冲区的宽度,注意,它与buffer是否还有很多空间无关,即使buffer还有很多空间,sizeofBuffer指定的大小才是你告诉该函数要使用的空间,换句话说,sizeofBuffer指定了当前有效的缓冲区的大小。
2. count,它存在的目的是,当后面参数得到的内容宽度超出了sizeofBuffer之后,避免缓冲区溢出,程序会自动截取count宽度的内容,并且追加一个结束符,也就是说count最多指定为sizeofBuffer-1,count可以等于sizeofBuffer,前提是后面参数得到的内容宽度没有溢出。将count参数设置为_TRUNCATE,如果内容宽度没有超出sizeofBuffer,则后面内容是多少就存多少,只有当内容宽度超出的时候,就等同于sizeofBuffer-1,也就是说只有溢出的时候_TRUNCATE才起到作用。
3. 即,count才是目标内容的宽度,sizeofBuffer只是缓冲区的宽度,当知道后面参数的真实宽度时,应该是指定在count上。
4. _snprintf_s 总是要追加一个结束符,因此,如果count和sizeofBuffer相等,并且后面内容大于等于了这个宽度,那么结束符就无处安放了,也就是会导致溢出。
_snprintf_s相关推荐
- sprintf_s与_snprintf与_snprintf_s
MSDN页面分别如下: spirntf_s: http://msdn.microsoft.com/zh-cn/library/ce3zzk1k%28VS.80%29.aspx _snprintf: h ...
- sprintf_s、_snprintf与_snprintf_s
一.函数原型 1.sprintf_s int sprintf_s( char *buffer, size_t sizeOfBuffer, const char *format[,argument].. ...
- _snprintf_s与_snprintf
VS2010测试百度百科给出的例子: char a[16]; size_t i; _snprintf_s 会自动自动截断,保留最大需要拷贝的字符串长度cout(即第二个参数) _snprintf 不会 ...
- linux下snprintf用法,关于snprintf,_snprintf,_snprintf_s操作
一.snprintf与snprintf_s的区别 众所周知,sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf. snprintf函数在C++11之前 并不 ...
- C++ 文件大小格式化
1 #include <iostream> 2 #include <windows.h> 3 using namespace std; 4 1 /*文件大小格式化 2 *par ...
- C++单元测试学习总结9
C++单元测试一:并非看上去那么简单--几个很实际的问题 理想与现实 为Java和C#做单元测试,基本上都有比较统一的工具.模式可用,IDE的支持也非常到位:可是到 了C++这里,一切就变的那样的&q ...
- c++ winpcap开发(2)
获取有关可用适配器的基本信息(即设备名称和描述).实际上WinPcap还提供其他高级信息.特别地,pcap_findalldevs_ex()返回的每个pcap_if结构还包含pcap_addr结构的列 ...
- ONVIF、RTSP/RTP、FFMPEG的开发实录
ONVIF.RTSP/RTP.FFMPEG的开发实录 前言 本文从零基础一步步实现ONVIF协议.RTSP/RTP协议获取IPC实时视频流.FFMPEG解码.开发环境为WIN7 32位 + VS201 ...
- c++ websocket 客户端
本次创建一个c++ 的websocket客户端,不依赖于其他库 头文件 #ifndef _WS_CLIENT_H #define _WS_CLIENT_H#ifdef _WIN32 #define _ ...
最新文章
- java实训周报_实验室周报
- vb初学者编程代码大全_学习VB编程第14天,一个简单的排序代码把我难住了
- OpenCV推断onnx格式目标检测模型(SSD)(附完整代码)
- monk js_使用Monk AI进行手语分类
- UI标签库专题十三:JEECG智能开发平台 ckfinder(ckfinder插件标签)
- ASP.NET 本地化 (localization)
- erl_0015 《硝烟中的erlang》 读书笔记002 “为过载做计划”
- python learning1.py
- C#通用类库--数字转为人民币汉字大写表示
- linux切换tab,linux-mint – ALT-TAB切换器中的图标从哪里加...
- Action以外的类中来获得Spring所管理的Service对象
- 喜马拉雅音频解析插件
- 基于matlab的暴雨强度公式参数推求,基于MATLAB的暴雨强度公式参数推求
- ue4 设置运行分辨率
- 对JSP内置对象的部分总结
- Mac手动关闭暗黑模式
- Ansible事实变量常见fact
- STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯
- 记录一个vue监控屏幕宽度的问题
- 数据库简介与 Mysql 服务基础