📄 msg.c
字号:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include "util.h"
static char g_dead_time[20];
static char g_cur_time[20];
FILE *g_fp_log = NULL;
char g_file_log[30];
int init_log(const char *name)
{
char path[20];
char s_name[256];
if( name )
strcpy(s_name, name);
else
strcpy(s_name, "def");
strcpy(path, "\\diange\\log");
if( path )
sprintf(g_file_log, "%s\\%s_%s.log", path, s_name, get_cur_time());
else
sprintf(g_file_log, "\\%s_%s.log", s_name, get_cur_time());
g_fp_log = fopen(g_file_log, "a");
if( !g_fp_log )
{
errMsg("Cannot open log file:%s", g_file_log);
return -1;
}
return 0;
}
int disinit_log()
{
if( g_fp_log )
fclose(g_fp_log);
return 0;
}
int mklic(const char *dead_time)
{
char *p_dead_time;
if( dead_time )
{
if( 15 == strlen(dead_time) )
{
strcpy(g_dead_time, dead_time);
return 0;
}
}
p_dead_time = g_dead_time;
*p_dead_time = '2';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
*p_dead_time = '3';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
*p_dead_time = '1';
*p_dead_time ++;
*p_dead_time = '3';
*p_dead_time ++;
*p_dead_time = '1';
*p_dead_time ++;
*p_dead_time = '_';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
*p_dead_time = '0';
*p_dead_time ++;
return 0;
}
int chklic(const char *time)
{
if( !time )
return -1;
if( 0 < strcmp(time, g_dead_time) )
{
#if 0
if( g_prn_screen )
fprintf(stderr, "[ERR] License expired\n");
if( g_fp_asr_log )
fprintf(g_fp_asr_log, "[ERR] License expired\n");
#endif
return -1;
}
#if 0
if( g_asr_lic_cnt > g_asr_lic_num )
{
if( g_prn_screen )
fprintf(stderr, "[ERR] too may ASR ports\n");
if( g_fp_asr_log )
fprintf(g_fp_asr_log, "[ERR] too may ASR ports\n");
return -1;
}
#endif
return 0;
}
void msgTime(time_t* ret_time, struct tm* ret_tm)
{
struct tm* ptm;
time_t t;
time(&t);
if (ret_time)
*ret_time = t;
ptm = localtime(&t);
ptm->tm_year += 1900;
ptm->tm_mon += 1;
*ret_tm = *ptm;
}
void msgPrn(const char *msg_type, char* fmt, va_list ap)
{
struct tm tm;
FILE* fp = stderr;
msgTime(0, &tm);
fprintf(stderr, "[%s](%04d-%02d-%02d %02d:%02d:%02d) ",
msg_type,
tm.tm_year,
tm.tm_mon,
tm.tm_mday,
tm.tm_hour,
tm.tm_min,
tm.tm_sec);
vfprintf(stderr, fmt, ap);
fflush(stderr);
if (fmt[strlen(fmt)-1] != '\n')
{
putc('\n', stderr);
}
if( g_fp_log )
{
fprintf(g_fp_log, "[%s](%04d-%02d-%02d %02d:%02d:%02d) ",
msg_type,
tm.tm_year,
tm.tm_mon,
tm.tm_mday,
tm.tm_hour,
tm.tm_min,
tm.tm_sec);
vfprintf(g_fp_log, fmt, ap);
if (fmt[strlen(fmt)-1] != '\n')
{
putc('\n', g_fp_log);
}
fflush(g_fp_log);
}
}
void errMsg(char* fmt, ...)
{
va_list ap;
va_start(ap, fmt);
msgPrn("ERR", fmt, ap);
va_end(ap);
}
void wrnMsg(char* fmt, ...)
{
va_list ap;
va_start(ap, fmt);
msgPrn("WRN", fmt, ap);
va_end(ap);
}
void infMsg(char* fmt, ...)
{
va_list ap;
va_start(ap, fmt);
msgPrn("INF", fmt, ap);
va_end(ap);
}
void dbgMsg(char* fmt, ...)
{
va_list ap;
va_start(ap, fmt);
msgPrn("DBG", fmt, ap);
va_end(ap);
}
const char *get_cur_time()
{
get_date_time_string(g_cur_time);
return g_cur_time;
}
/*
* pub func
* get date-time string
*/
int get_date_time_string(char *buf)
{
struct tm *newtime;
time_t aclock;
int year;
if( !buf ) return -1;
time( &aclock ); /* Get time in seconds */
newtime = localtime( &aclock ); /* Convert time to struct */
/* tm form */
year = 1900 + newtime->tm_year;
sprintf(buf, "%04d%02d%02d_%02d%02d%02d", year, newtime->tm_mon+1, newtime->tm_mday,
newtime->tm_hour, newtime->tm_min, newtime->tm_sec);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -