閱讀420 返回首頁    go 阿裏雲 go 技術社區[雲棲]


一個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


最後更新:2017-04-02 06:51:59

  上一篇:go Android手機屏幕錄像方法
  下一篇:go 在Android中通過jni方式使用編譯好的FFmpeg庫-Android中使用FFmpeg媒體庫(二)