📄 uu.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#include <string.h>
#include <ctype.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include "../include/uu.h"
char * TU::searchKey(char *szcontent,int lencontent,char *szkey )
{
char *pkey;
char *pc;
char *pcend;
int lenkey;
lenkey=strlen(szkey);
if(lenkey>lencontent || lenkey==0)
return NULL;
pc=szcontent;
pcend=szcontent+lencontent-lenkey;
int j;
while(pc<=pcend)
{
pkey=szkey;
for(j=0;j<lenkey;j++)
{
if(*pkey!=*pc)
break;
pkey++;
pc++;
}
if(j==lenkey)
return pc-lenkey;
pc++;
}
return NULL;
}
void TU::delSpace(char *buf)
{
int i,j;
int len=strlen(buf);
char *p=buf+strlen(buf)-1;
for(i=0;i<len;i++)
{
if(isspace(*p))
{
*p=0;
p--;
}
else
break;
}
len=strlen(buf);
if(len<=0)
return;
j=0;
p=buf;
while(isspace(*(p+j)))
{
j++;
}
if(j>0)
{
for(i=0;j<=len;j++,i++)
{
p[i]=p[j];
}
}
}
void TU::getszIp(char *szip,unsigned long ip)
{
struct in_addr inaddr;
//char szip[20];
inaddr.s_addr = ip;
sprintf(szip,"%s",inet_ntoa(inaddr));
}
time_t TUTime::GetTime(char *yymmdd,char *hhmmss)
{
time_t ttm;
struct tm stm;
char buf[2+1];
buf[2]=0;
memcpy(buf,hhmmss+4,2);
stm.tm_sec=atoi(buf);
memcpy(buf,hhmmss+2,2);
stm.tm_min=atoi(buf);
memcpy(buf,hhmmss,2);
stm.tm_hour=atoi(buf);
memcpy(buf,yymmdd+4,2);
stm.tm_mday=atoi(buf);
memcpy(buf,yymmdd+2,2);
stm.tm_mon=atoi(buf)-1;
memcpy(buf,yymmdd,2);
stm.tm_year=atoi(buf)+100;
stm.tm_wday=0;
stm.tm_yday=0;
stm.tm_isdst=0;
ttm=mktime(&stm);
return ttm;
}
int TUTime::GetDate(char *yymmdd,char *hhmmss)
{
time_t ttm;
struct tm stm;
struct tm *pstm;
char buf[2+1];
buf[2]=0;
memcpy(buf,hhmmss+4,2);
stm.tm_sec=atoi(buf);
memcpy(buf,hhmmss+2,2);
stm.tm_min=atoi(buf);
memcpy(buf,hhmmss,2);
stm.tm_hour=atoi(buf);
memcpy(buf,yymmdd+4,2);
stm.tm_mday=atoi(buf);
memcpy(buf,yymmdd+2,2);
stm.tm_mon=atoi(buf)-1;
memcpy(buf,yymmdd,2);
stm.tm_year=atoi(buf)+100;
stm.tm_wday=0;
stm.tm_yday=0;
stm.tm_isdst=0;
ttm=mktime(&stm);
pstm=localtime(&ttm);
return pstm->tm_wday;
}
void TUTime::Date8toDate2(char *date8,char *date2)
{
char buf[3];
unsigned short usi=0;
unsigned short usit=0;
buf[2]=0;
memcpy(buf,date8+2+4,2); usi=atoi(buf);
memcpy(buf,date8+2+2,2); usit=atoi(buf); usit<<=5; usi|=usit;
memcpy(buf,date8+2,2); usit=atoi(buf); usit<<=9; usi|=usit;
memcpy((void *)date2,(void *)&usi,2);
}
void TUTime::Date6toDate2(char *date6,char *date2)
{
char buf[3];
unsigned short usi=0;
unsigned short usit=0;
buf[2]=0;
memcpy(buf,date6+4,2); usi=atoi(buf);
memcpy(buf,date6+2,2); usit=atoi(buf); usit<<=5; usi|=usit;
memcpy(buf,date6,2); usit=atoi(buf); usit<<=9; usi|=usit;
memcpy((void *)date2,(void *)&usi,2);
}
unsigned short TUTime::getsiDay(char *date6)
{
char buf[3];
unsigned short usi=0;
unsigned short usit=0;
buf[2]=0;
memcpy(buf,date6+4,2); usi=atoi(buf);
memcpy(buf,date6+2,2); usit=atoi(buf); usit<<=5; usi|=usit;
memcpy(buf,date6,2); usit=atoi(buf); usit<<=9; usi|=usit;
return usi;
}
time_t TUTime::tfrDate2(char date2[])
{
time_t ttm;
struct tm stm;
char buf[2+1];
buf[2]=0;
stm.tm_sec=0;
stm.tm_min=0;
stm.tm_hour=0;
stm.tm_mday=(unsigned )date2[1];
stm.tm_mon=(unsigned)(date2[0]&0x0f)-1;
stm.tm_year=date2[0]&0xf0>>4+100;
stm.tm_wday=0;
stm.tm_yday=0;
stm.tm_isdst=0;
ttm=mktime(&stm);
return ttm;
}
short TUTime::toShortTime(time_t ltime)
{
struct tm *ptm;
unsigned short usi=0;
unsigned short usit=0;
ptm=gmtime(<ime);
usi=ptm->tm_mday;
usit=ptm->tm_mon+1; usit<<=5; usi|=usit;
usit=ptm->tm_year-100; usit<<=9; usi|=usit;
return usi;
}
bool TUTime::chkIHour(int interval_hh)
{
//static char hhmmss[7];
static int hh=-1;
struct tm *ttime;
time_t clock;
time(&clock);
ttime = localtime(&clock);
if(hh<0)
hh=ttime->tm_hour;
if(ttime->tm_hour<hh)
{
ttime->tm_hour+=24;
}
if(ttime->tm_hour-hh>interval_hh)
{
if(ttime->tm_hour>=24)
hh=ttime->tm_hour-24;
else
hh=ttime->tm_hour;
return true;
}
return false;
}
bool TUTime::chkIMin(int interval_mm)
{
static int mm=-1;
struct tm *ttime;
time_t clock;
time(&clock);
ttime = localtime(&clock);
if(mm<0)
mm=ttime->tm_min;
if(ttime->tm_min<mm)
{
ttime->tm_min+=60;
}
if(ttime->tm_min-mm>interval_mm)
{
if(ttime->tm_min>=60)
mm=ttime->tm_min-60;
else
mm=ttime->tm_min;
return true;
}
return false;
}
char *TUTime::YYMMDD()
{
static char yymmdd[7];
struct tm *ttime;
time_t clock;
time(&clock);
ttime = localtime(&clock);
sprintf(yymmdd,"%0.2d",ttime->tm_year%100);
sprintf(yymmdd+2,"%0.2d",ttime->tm_mon+1);//UNIX mon from 0 to 11
sprintf(yymmdd+4,"%0.2d",ttime->tm_mday);
yymmdd[6]='\0';
return( yymmdd );
}
char *TUTime::HHMMSS()
{
static char hhmmss[7];
struct tm *ttime;
time_t clock;
time(&clock);
ttime = localtime(&clock);
sprintf(hhmmss,"%0.2d",ttime->tm_hour);
sprintf(hhmmss+2,"%0.2d",ttime->tm_min);
sprintf(hhmmss+4,"%0.2d",ttime->tm_sec);
hhmmss[6]='\0';
return( hhmmss );
}
char *TUTime::YYYYMMDDHHMMSS()
{
static char yyyymmddhhmmss[14+1];
struct tm *ttime;
time_t clock;
time(&clock);
ttime = localtime(&clock);
sprintf(yyyymmddhhmmss,"%0.4d",ttime->tm_year%100+2000);
sprintf(yyyymmddhhmmss+4,"%0.2d",ttime->tm_mon+1);//UNIX mon from 0 to 11
sprintf(yyyymmddhhmmss+6,"%0.2d",ttime->tm_mday);
sprintf(yyyymmddhhmmss+8,"%0.2d",ttime->tm_hour);
sprintf(yyyymmddhhmmss+10,"%0.2d",ttime->tm_min);
sprintf(yyyymmddhhmmss+12,"%0.2d",ttime->tm_sec);
yyyymmddhhmmss[14]=0;
return( yyyymmddhhmmss );
}
ofstream *TLog::m_pofserr=NULL;
ofstream *TLog::m_pofslog=NULL;
int TLog::m_iseqno=0;
int TLog::m_iline=0;
char TLog::m_szfilename[128]="000000000000000000000000000000000000";
void TLog::openLog(char *szname)
{
strcpy(m_szfilename,szname);
newFile();
}
void TLog::newFile()
{
char c_filename[128];
sprintf(c_filename,"../log/%s%d-%5d.log",m_szfilename,getpid(),m_iseqno);
m_pofslog= new ofstream(c_filename,ios::trunc);
sprintf(c_filename,"../log/%s%d-%05d.err",m_szfilename,getpid(),m_iseqno);
m_pofserr= new ofstream(c_filename,ios::trunc);
}
void TLog::toErr( char *fmt, ...)
{
char cerrinf[1024];
va_list ap;
va_start(ap,fmt);
vsnprintf(cerrinf,sizeof(cerrinf),fmt,ap);
//sprintf(m_cerrinf,fmt,ap);
(*m_pofserr)<<cerrinf<<endl;
va_end(ap);
m_iline++;
}
void TLog::toLog(char *fmt, ...)
{
char cerrinf[1024];
va_list ap;
va_start(ap,fmt);
vsnprintf(cerrinf,sizeof(cerrinf),fmt,ap);
//sprintf(m_cerrinf,fmt,ap);
(*m_pofslog)<<cerrinf<<endl;
va_end(ap);
m_iline++;
if(m_iline>100)
{
m_iline=0;
m_iseqno++;
delete m_pofserr;
delete m_pofslog;
newFile();
}
}
main(int argc,char *argv[])
{
TLog::openLog(argv[0]);
for(int i=0;i<1000;i++)
TLog::toLog("(tot domain=[%d])",i);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -