专栏中心

EEPW首页 > 专栏 > fprintf与vfprintf的区别于用法

fprintf与vfprintf的区别于用法

发布人:电子禅石 时间:2022-08-13 来源:工程师 发布文章

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


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: C
更多 培训课堂
更多 焦点
更多 视频

技术专区