C语言stdio头文件(stdio.h)中vsnprintf函数的用法及代码示例。
用法:
int vsnprintf (char * s, size_t n, const char * format, va_list arg );
将格式化的数据从变量参数列表写入大小已设置的缓冲区
如果结果字符串长于n-1字符,其余的字符将被丢弃而不存储,而是计算该函数返回的值。
在内部,该函数从由以下项标识的列表中检索参数:arg仿佛va_arg被用于它,因此状态arg可能会因调用而改变。
在任何情况下,arg应该已经被初始化va_start在调用之前的某个时间点,预计它将被释放va_end调用结束后的某个时间点。
参数
返回值
如果要写的字符数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 open
fclose (pFile);
}
return 0;
}
在此示例中,如果文件myfile.txt不存在,perror被调用以显示类似于以下内容的错误消息:
Error opening file 'myfile.txt': No such file or directory |
相关用法
- C语言 remove用法及代码示例
- C语言 rename用法及代码示例
- C语言 tmpfile用法及代码示例
- C语言 tmpnam用法及代码示例
- C语言 fclose用法及代码示例
- C语言 fflush用法及代码示例
- C语言 fopen用法及代码示例
- C语言 freopen用法及代码示例
- C语言 setbuf用法及代码示例
- C语言 setvbuf用法及代码示例
- C语言 fprintf用法及代码示例
- C语言 fscanf用法及代码示例
- C语言 printf用法及代码示例
- C语言 scanf用法及代码示例
- C语言 snprintf用法及代码示例
- C语言 sprintf用法及代码示例
- C语言 sscanf用法及代码示例
- C语言 vfprintf用法及代码示例
- C语言 vfscanf用法及代码示例
- C语言 vprintf用法及代码示例
- C语言 vscanf用法及代码示例
- C语言 vsprintf用法及代码示例
- C语言 vsscanf用法及代码示例
- C语言 fgetc用法及代码示例
- C语言 fgets用法及代码示例
- C语言 fputc用法及代码示例
- C语言 fputs用法及代码示例
- C语言 getc用法及代码示例
- C语言 getchar用法及代码示例
- C语言 gets用法及代码示例
- C语言 putc用法及代码示例
- C语言 putchar用法及代码示例
- C语言 puts用法及代码示例
- C语言 ungetc用法及代码示例
- C语言 fread用法及代码示例
- C语言 fwrite用法及代码示例
- C语言 fgetpos用法及代码示例
- C语言 fseek用法及代码示例
- C语言 fsetpos用法及代码示例
- C语言 ftell用法及代码示例
- C语言 rewind用法及代码示例
- C语言 clearerr用法及代码示例
- C语言 feof用法及代码示例
- C语言 ferror用法及代码示例
- C语言 perror用法及代码示例
注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C vsnprintf function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。