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

📄 uu.cpp

📁 linux 上http email 协议分析程序 主要能够处理大数据量的主干网的应用
💻 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(&ltime);
	
	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 + -