📄 yspubfunction.cpp
字号:
#include "yspubfunction.h"#include "localmutex.h"//#include <fstream.h>//#include <iostream.h>#include "publicclass.h"extern CPublicClass g_PublicClass;CLocalMutex g_PrintfLocal,g_SysLogLock;bool _CheckParam( int argc, char ** argv,QString scheck){ if(argc<=0) return 0; for(int i=0;i<argc;i++) { QString s;s.sprintf("%s",argv[i]); if(s==scheck) return true; } return false;}int _CheckParamWild( int argc, char ** argv,QString scheck){ if(argc<=0) return 0; for(int i=0;i<argc;i++) { QString s;s.sprintf("%s",argv[i]); s=s.lower();scheck=scheck.lower(); if(s.find(scheck,0)>=0) return i; } return -1;}QString _GetFileAbsPath(QString FileName){ QString s;int index=-1; index=FileName.findRev("/");// if(index<0) return QDir::currentDirPath(); s=FileName.mid(0,index); return s;}QString _GetFileName(QString FileName){// printf("Filename=%s\n", FileName.data()); QString s;int index=-1; index=FileName.findRev("/"); if(index<0) return FileName; s=FileName.mid(index+1); printf("s=%s\n", FileName.data()); return s;}int _getKeyId(){ QString s=getTimeStr(); return s.toInt();}bool _isFileExists(QString Filename){ return QFile::exists (Filename);}ulong _getFileLength(QString Filename){ QFile f(Filename); return (ulong)f.size();}QString _getFileNameNoExtend(QString FileName){ int index=FileName.find('.'); if(index<0) return FileName; FileName=FileName.mid(0,index);return FileName;}QString _mST(QString s,int length,int align){ QString tmps,s1,s2; if((int)s.length()<length) { switch(align) { case 0: //left { tmps=s+s1.fill(' ',length-s.length()); } break; case 1: //center { int iMid=(length-s.length())/2; tmps=s1.fill(' ',iMid)+s+s1.fill(' ',length-s.length()-iMid); } break; case 2: { tmps=s1.fill(' ',length-s.length())+s; } break; } } else { tmps=s.mid(0,length); } return tmps;}QString _TRVT(int valuetype){ if(valuetype==0) return "整型"; else if(valuetype==1) return "字符"; else if(valuetype==2) return "浮点型"; else return "未知"; return "未知";}bool _CheckModuleRun(QString ModuleName){ ModuleName = ModuleName ; return false ;}void _DisplayHelp(){ printf("参数:-module=<模块名称>[带入模块名称]例:zmmodule -module=zmmodule\n"); printf("参数:-n [是否启动下级模块] 例:zmmodule -n 不启动下级模块\n"); printf("参数:-r [一旦异常允许后台重启] 例:zmmodule -r 允许重启\n"); printf("参数:-debug=<调试信息输出的文件名称/auto/console> [程序为调试状态] 例:zmmodule -debug=/home/temp.txt 输出\n"); printf("参数:-trace=<设备号/-1> 例:zmmodule -trace=201,recv/send/all\n"); printf("参数:-help [显示帮助信息] 例:zmmodule -help \n"); printf("参数:-v [列出版本信息] 例:zmmodule -v 列出版本信息,并退出\n"); abort();}int _printf_error(int iclass,const char* fmt,...){ g_SysLogLock.lock(); QString Path=g_PublicClass.GetWorkPath()+"/syslog"; mkdir(Path.data(),0666); QString Name;Name.sprintf("%s/%sSyslog",Path.data(),g_PublicClass.m_ModuleName.data()); Name+=".log"; va_list ap; va_start(ap, fmt); char buff[2048];memset(buff,0x00,2048);char header[10];memset(header,0x00,10); int ret=vsprintf(buff,fmt,ap); ofstream write_data(Name.data(), ios::app | ios::out); if(iclass==ERROR) { memcpy(header,"错误:",5); } if(iclass==WARN) { memcpy(header,"警告:",5); } if(iclass==OTHER) { memcpy(header,"其他:",5); } printf(header);printf(buff); if(write_data) { write_data << header<<buff; write_data.close() ; } va_end(ap); g_SysLogLock.unlock(); return ret;}int _printf(const char* fmt,...){ bool bSaveFile=false; if(g_PublicClass.m_isDebug==0) return 0; //release 不输出任何信息 g_PrintfLocal.lock(); int ret=0; va_list ap; va_start(ap, fmt); //ret = vfprintf(stdout, fmt, ap); if(g_PublicClass.m_OutToConsole==2) //输出到控制台 { ret = vfprintf(stdout, fmt, ap); } else if(g_PublicClass.m_OutToConsole==3) { ret = vfprintf(stdout, fmt, ap);bSaveFile=true; } else { bSaveFile=true; } if(bSaveFile) { char buff[1024];memset(buff,0x00,1024); ret=vsprintf(buff,fmt,ap); ofstream write_data(g_PublicClass.m_DebugFile.data(), ios::app | ios::out); if(write_data) { write_data << buff; write_data.close() ; } } va_end(ap); g_PrintfLocal.unlock(); return (ret);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -