可变参数 用法 va_list

来源:互联网 发布:java 前台传中文乱码 编辑:程序博客网 时间:2024/05/22 15:22
http://www.kuqin.com/article/23candcplusplus/31837.html
int ErrLog(char *fmt, ...){    FILE *fp;    char logfile[255];    va_list args;    va_start(args, fmt);    sprintf(logfile, "%s/log/%s.err.%s.log", getenv("HOME"), srv_name, GetSysDate(0));    fp = fopen(logfile, "a+");    if (fp == NULL) {        fprintf(stderr, "open run log file[%s]error: %s\n", logfile, strerror(errno));        return -1;    }    fprintf(fp, "[%s %s][%ld:%ld][%s][%s]\n", GetSysDate(1), GetSysTime(), getpgrp(), getpid(), bank_name, strerror(errno));    vfprintf(fp, fmt, args);    fclose(fp);    va_end(args);    return 0;}
int printv(char *fmt, ...){    va_list args;    if (verbose == 0)        return 0;    va_start(args, fmt);    vfprintf(stderr, fmt, args);    va_end(args);    return 0;}


int printv( char *psMsg, int iSqlcode, char *psFile, long lLine )
{
        FILE *fp_log;
        char sFile[255];
        char sDate[9],sTime[7];

        sprintf(sFile,"%s/log/err.log",getenv("HOME"));
        if((fp_log=fopen(sFile,"a"))!=NULL)
        {
                acc_getrqsj(sDate,sTime);
                fprintf(fp_log,"时间:%s%s|文件:%s|行数:%d|%s|数据库错码:%d|\n",\
                        sDate+4,sTime,psFile,lLine,psMsg,iSqlcode);
        }
        fclose(fp_log);
        return 0;
}
原创粉丝点击