一个fprintf的简单封装实例(vsprintf,va_start(),+va_arg(),+va_end()可变参数列表)

对于不方便进行调试的程序,最好的方法,就是将调试信息写入文件了。

下面是一个简单的实例,仅供参考。


程序代码:

#include <string.h>
#include <stdio.h>
#include <stdarg.h> 

#ifndef DEBUG
#define DEBUG
#endif

int   LOG2F(const char *format,...) 
{       
	int ret = 0;
	
#ifdef DEBUG	
	FILE* fp = NULL;	
	fp=fopen("log.txt","a+");
	if(fp != NULL)
	{	
		va_list   args; 
		va_start(args,format); 
		vfprintf(fp,format,args);
		va_end(args); 
		fflush(fp);  
	 }   
	 else
	 {
	 	ret = 1;
	 }
	 
	 if(fp != NULL)
	 {
	 	fclose(fp);
	 	fp = NULL;
	 }
#endif
	 
	return ret;
} 

int main()
{
	char *str = "It is a Log test  program!";
	int ix = 10;
	float fx = 2.0;
	
	LOG2F("%s %d %f\n",str,ix,fx);	
	
	return 0;
}


输出:

It is a Log test  program! 10 2.000000


上一篇:VB编程:Val字符串转数字,CStr数字转字符串


下一篇:MySQL学习笔记(一)Ubuntu16.04中MySQL安装配置(5.6优化、错误日志、DNS解决)