📄 pub_writelog.c
字号:
/* *记log的一些函数 *zyq - shilyu - cff 0831 *functionnum 004 */ #include "./../inc/pub.h"#define SPC_NUM 2/* 001 * Function Name : void WriteLog ( fname , fmt , arg1 , arg2 ... ) * Description : 将一信息以指定的格式写入指定文件中去 * Input Para : char *fname 文件的名称 * char *fmt 输出格式串 * arg1, arg2, ... 可变个数的参数 * Output Para : NO * Return Code : No * Note : */void WrinteFmtLog ( fname, va_alist )char *fname;va_dcl /* #define va_dcl long va_alist; */{ va_list argptr; char *fmt; int cnt; char buf[512]; char timestr[60]; FILE *fp; long t; struct tm *ts; memset( buf, 0x00, sizeof( buf ) ) ; va_start(argptr); /* #define va_start(__list) __list = (char *) &va_alist */ fmt = va_arg ( argptr ,char * ) ; cnt = vsprintf ( buf , fmt , argptr ) ; va_end ( argptr ) ; /* buf [ 128 ] = '\0'; */ fp = NULL ; if ( ( fp = fopen ( fname , "a+" ) ) == NULL ) return ; time ( &t ) ; ts = localtime ( &t ) ; memset( timestr, 0x00, sizeof( timestr ) ) ; sprintf ( timestr,"%02d:%02d:%02d:%02d:%02d:%02d",\ ts->tm_year - 100, ts->tm_mon+1, ts->tm_mday,ts->tm_hour, ts->tm_min, ts->tm_sec); fprintf ( fp , "[%s] %s\n" , timestr , buf ) ; fclose ( fp ) ; return ;} /* 002 *将一条指定的记录追加到指定文件件中去 *文件名为pfilename+yymmdd */ int WlogSuperaddition( char *pfilename, char * msg ){ char tmpbuf[100]; FILE *fp; struct tm *time_p; time_t timeval; char filename [100]; fp = NULL ; time ( &timeval ) ; time_p = localtime ( &timeval ) ; memset( filename, 0x00, sizeof( filename ) ) ; sprintf ( filename, "%s%02d%02d%02d", pfilename, time_p->tm_mon+1, time_p->tm_mday, time_p->tm_year - 100 ) ; if((fp = fopen(filename,"a+")) == NULL) return OK ; fprintf(fp,"%s", msg); fprintf(fp, "\n"); fclose(fp); return OK ;}/* 003 *错误提示函数 *程序退出 因而致命错误时可以用此函数 */void Error( va_alist )va_dcl{ va_list ap ; char *format ; va_start( ap ) ; format = va_arg( ap, char * ) ; fprintf( stderr, "error: " ) ; vfprintf( stderr, format, ap ) ; va_end( ap ) ; fprintf( stderr, "\n" ) ; exit( 1 ) ;} /* 004 *记log函数 */ void WlogHexContent( str , len , FileName , memo )const char *str ;int len ;char *FileName ;char *memo ;{ unsigned char c; char buf1[20],buf2[101]; int i,j,count,loopcount; FILE *fp; struct tm *time_p; time_t timeval; char datebuf[100]; char filename [100]; char s_FieldNo[ 3+1 ] ; time(&timeval); time_p = localtime ( &timeval) ; sprintf (datebuf, ctime(&timeval)) ; sprintf (filename, "%s.%02d%02d%02d", FileName , time_p->tm_mon+1, time_p->tm_mday, time_p->tm_year - 100 ) ; if((fp = fopen(filename,"a+")) == NULL) exit(-1); fprintf (fp, "%s\n%s", datebuf , memo ); count = 0; if(len % 16) loopcount = len /16 + 1; else loopcount = len / 16; memset ( s_FieldNo , 0x00 , sizeof ( s_FieldNo ) ) ; for(i = 0; i < loopcount;i++) { if ( i % 8 == 0 ) fprintf(fp,"\nOFFSET -0--1--2--3--4--5--6--7-HEX-1--2--3--4--5--6--7 ------ASCII-----\n"); sprintf(buf1,"%07d ",i*16); fputs(buf1,fp); memset(buf2,' ',100); memset(buf2+100,'\0',1); for(j = 0;j < 16;j++) { c = *(str+i*16+j); sprintf(&buf2[j*3],"%02x ",c); if(!isprint(c)) c = '.'; buf2[16*3+SPC_NUM+j] = c; count++; if(count == len) break; } if(count == len) { int k,len; len = strlen(buf2); for(k = 0;k < 48 + SPC_NUM - len ;k++) buf2[len+k] = ' '; } buf2[16*3] = ' '; buf2[16*3+SPC_NUM+j+1] = '\n'; buf2[16*3+SPC_NUM+j+2] = '\0'; fputs(buf2,fp); } fclose(fp); return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -