fprintf의 간단한 봉인 실례 (vsprintf,va start (), +vaarg(),+va_end () 가변 매개변수 목록)

860 단어
디버깅하기 불편한 프로그램에 있어서 가장 좋은 방법은 디버깅 정보를 파일에 쓰는 것이다.
다음은 간단한 실례로 참고만 제공한다.
프로그램 코드:
#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
",str,ix,fx); return 0; }

출력:
It is a Log test  program! 10 2.000000

좋은 웹페이지 즐겨찾기