新闻  |   论坛  |   博客  |   在线研讨会
fprintf与vfprintf的区别于用法
电子禅石 | 2022-08-13 12:24:26    阅读:8405   发布文章

APUE中有个篇章介绍时带出了vfprintf函数。先看下两个函数的声明方式:


#include <stdio.h>


int fprintf(FILE *fp, const *format, ...);


成功则输出字符数,出错为负值



#include <stdarg.h>


#include <stdio.h>


int vfprintf(FILE *fp, const char *format, va_list arg);


返回值同fprintf



两个函数从声明看,第三个参数有区别,这样就形成了两个函数不同的作用。比如,你要写一个日志函数


void log(FILE *file, const char* format, ... )

{

    va_list args;

    va_start (args, format);

    fprintf(file, "%s: ", getTimestamp());

    vfprintf (file, format, args);      //在这个地方用vfprintf函数就很合适,因为第三个参数可以直接得到

    va_end (args);

}


vfprintf适合参数可变列表传递。



————————————————


原文链接:https://blog.csdn.net/xingzhi2014/article/details/20392251


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客