All pastes #757510 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-11-01 12:22 UTC
rendered paste body
#include <stdarg.h>
#include <stdlib.h>

#include <fstream.h>


#define LOGFILE "debug.log"
#define maxlines 50

int linecount;
int charcount = 0 ;
char debugbuffer[maxlines * 50];

void debugPrint(char *fmt,...){


	
	FILE *debuglogfile;
	va_list ap;
	char *p,*sval;
	int ival;
	double dval;
	
	va_start(ap,fmt);
	for (p = fmt; *p; p++){
		if (*p != '%'){
			debugbuffer[charcount++] = *p;
			continue;
		}
		
		switch (*++p){
		case 'd':
			ival = va_arg(ap,int);
			sprintf (&debugbuffer[charcount],"%d",ival);

			charcount = strlen(debugbuffer) + 1;
			break;
		case 'f':
			dval = va_arg(ap,double);
			sprintf (&debugbuffer[charcount],"%f",dval);

			charcount = strlen(debugbuffer) + 1;
			break;
		case 's':

			for (sval = va_arg(ap,char *); *sval ; sval++)
			strcat(&debugbuffer[charcount++],va_arg(ap,char *));
			break;

		}
	}


	va_end(ap);


	debugbuffer[charcount++]='\r';
	debugbuffer[charcount++]='\n';
	debugbuffer[charcount]=0;
	linecount++;


	//If we have reached the maximum defined number of lines, 
	//we write to a file and reset the counters
	
	if (linecount >= maxlines){
		debuglogfile = fopen (LOGFILE,"a");
		fwrite (debugbuffer,strlen(debugbuffer),1,debuglogfile);

		//fflush (debuglogfile);
		fclose (debuglogfile);

		linecount = 0;
		charcount = 0;

		
	}
}


int main (int argc,char **argv){
	int i;

	for (i=0;i<1000;i++)
		debugPrint("Hello, this is a test number %d \r\n", random());

	return 0;

}