⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pub_writelog.c

📁 自已结累的Unix下C语言开发函数库
💻 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 + -