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

📄 msg.c

📁 wince平台下的一个录音机
💻 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 + -