vsnprintf用法解析
int vsnprintf (char * s, size_t n, const char * format, va_list arg );
描述:
将格式化数据从可变参数列表写入大小缓冲区
如果在printf上使用格式,则使用相同的文本组成字符串,但使用由arg标识的变量参数列表中的元素而不是附加的函数参数,
并将结果内容作为C字符串存储在s指向的缓冲区中 (以n为最大缓冲区容量来填充)。
如果结果字符串的长度超过了n-1个字符,则剩余的字符将被丢弃并且不被存储,而是被计算为函数返回的值。
在内部,函数从arg标识的列表中检索参数,就好像va_arg被使用了一样,因此arg的状态很可能被调用所改变。
在任何情况下,arg都应该在调用之前的某个时刻由va_start初始化,并且在调用之后的某个时刻,预计会由va_end释放。
参数:
s
指向存储结果C字符串的缓冲区的指针。
缓冲区应至少有n个字符的大小。
n
在缓冲区中使用的最大字节数。
生成的字符串的长度至多为n-1,为额外的终止空字符留下空间。
size_t是一个无符号整数类型。
format
包含格式字符串的C字符串,其格式字符串与printf中的格式相同
arg
标识使用va_start初始化的变量参数列表的值。
va_list是在<cstdarg>中定义的特殊类型。
返回值:
如果n足够大,则会写入的字符数,不包括终止空字符。
如果发生编码错误,则返回负数。
注意,只有当这个返回值是非负值且小于n时,字符串才被完全写入。
/* vsnprintf example */
#include <stdio.h>
#include <stdarg.h>void PrintFError ( const char * format, ... )
{char buffer[256];va_list args;va_start (args, format);vsnprintf (buffer,256,format, args);perror (buffer);va_end (args);
}int main ()
{FILE * pFile;char szFileName[]="myfile.txt";pFile = fopen (szFileName,"r");if (pFile == NULL)PrintFError ("Error opening '%s'",szFileName);else{// file successfully openfclose (pFile);}return 0;
}
在这个例子中,如果文件myfile.txt不存在,则调用perror以显示类似于以下内容的错误消息:
Error opening 'myfile.txt': No such file or directory
vsnprintf用法解析相关推荐
- 四种Java线程池用法解析
四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...
- mysql have_mysql having用法解析
having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前.而 having子句在聚合后对组记录进行筛选. ...
- argparse.ArgumentParser()用法解析
argparse.ArgumentParser()用法解析(https://blog.csdn.net/the_time_runner/article/details/97941409) https: ...
- sql中group by 和having 用法解析
--sql中的group by 用法解析: -- Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)". --它的作用是通过一定的规则将一 ...
- python global和nonlocal用法解析
这篇文章主要介绍了python global和nonlocal用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 global和nonlocal ...
- extern c用法解析
extern "c"用法解析 字数1875 阅读38631 评论4 喜欢20 引言 C++保留了一部分过程式语言的特点,因而它可以定义不属于任何类的全局变量和函数.但是,C++毕竟 ...
- extern C的用法解析
extern "C"的用法解析 2012-03-20 23:29 by Rollen Holt, 20231 阅读, 6 评论, 收藏, 编辑 1.引言 C++语言的创建初衷是&q ...
- vsprintf用法解析
vsprintf用法解析 原创 swif_N_F 最后发布于2017-12-04 09:43:14 阅读数 1703 收藏 发布于2017-12-04 09:43:14 分类专栏: C C++ 知识点 ...
- python legb_Python变量作用域LEGB用法解析
这篇文章主要介绍了Python变量作用域LEGB用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 闭包就是, 函数内部嵌套函数. 而 装饰器只 ...
最新文章
- ATT汇编leave指令
- 谷歌加载web workers问题
- 苹果开发者账号可以创建多少测试证书_ios苹果企业账号你所不知道的那些点
- linux php7 mongodb,CentOS 7下安装配置PHP7跟LAMP及MongoDB和Redis
- 信道效率以及信道的吞吐率
- Python三种方法统计4位自然数变为黑洞数6174所需次数分布
- 杭电计算机2012年硕士研究生笔试详解
- ubuntu 卸载openjdk 安装java8 安装之后提示Command ‘java‘ not found
- 工具使用-----Jmeter-脚本的录制
- readyread信号不触发_什么是示波器的触发,意外发现!
- Linux下rootkit病毒专杀工具,linux系统下检测rootkit工具
- DynamipsGUI的使用+vmware通讯建立
- 软件架构风格 - 虚拟机风格
- 什么是用户价值分层?
- 应用程序无法正常启动0xc000007b问题解决
- 香港渣打银行开户价格是多少?
- 无线路由器(WIFI)经常掉线断网的可能的原因
- Python_微博热搜保存数据库
- razer鼠标测试软件,Razer Viper Ultimate无线鼠标评测
- 新氧放弃私有化:曾由CEO金星发起 公司市值已不足1亿美元
热门文章
- “北航学堂”M2阶段postmortem
- CentOS 7系统安装配置图解教程
- 日期控件My97DatePicker的使用
- js基础之倒计时代码
- 直接打包的服务器组件,Vue-CLI-2.x全家桶架构,支持打包后自动部署到服务器构建案例...
- 服务器微信推送,开启服务器消息推送后收不到微信推送的数据
- Optional类 Optional介绍
- StringUtils 系列之 StringUtils.isBlank() 和 StringUtils.isNotBlank() 的区别、CollectionUtils.isEmpty()
- vue项目实现屏幕自适应
- 2018国内互联网公司薪资排行Top10!腾讯被逆袭,第一竟然是……