📄 hwsndmsg_old.pc
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <varargs.h>#include <unistd.h>#include <time.h>#include <sqlca.h># include "../include/shmmsg.h"#define USRNAME "omcr"#define PASSWD "omcr"#define ORASID "csc" #include "../include/hw.h"#define SIZE 256 #define SIZE1 30void p_debug();void m_debug();void getsystime();int ReplaceChar();main(){ char buf[SIZE]; FILE *fp,*fp1; int len,count,i,n; char *ptr; char *desttmp; char status[10],result[SIZE]; int y[10]; char jizhan[10]; char tmp0[SIZE1],tmp1[SIZE1],tmp2[SIZE1],tmp3[SIZE1],tmp4[SIZE1]; char tmp5[SIZE1],tmp6[SIZE1],tmp7[SIZE1],tmp8[SIZE1],tmp9[SIZE1]; char tmp10[SIZE1],tmp11[SIZE1],tmp12[SIZE1]; char tmp13[SIZE1],tmp14[SIZE1],tmp15[SIZE1]; char tmp16[SIZE1],tmp17[SIZE1],tmp18[SIZE1],tmp19[SIZE1]; int semid; static char flag[1]; static char eg1[18],eg2[70],eg3[70],time[18],eg4[70],eg5[6]; char tmp[15]; char alarm_level_no[1],alarm_sort_no[1]; char alarm_site_name[31]; char alarm_time[19],alarm_name_no[2]; char icity_no[2],vcity_no[2],sz[2]; char alarm_queue[10]; int alarm_csn,leng; char rtn[4]; n=0; memset(buf,0x0,SIZE); memset(status,0x0,sizeof(status)); memset(result,0x0,SIZE); memset(tmp0,0x0,SIZE1); memset(tmp1,0x0,SIZE1); memset(tmp2,0x0,SIZE1); memset(tmp3,0x0,SIZE1); memset(tmp4,0x0,SIZE1); memset(tmp5,0x0,SIZE1); memset(tmp6,0x0,SIZE1); memset(tmp7,0x0,SIZE1); memset(tmp8,0x0,SIZE1); memset(tmp9,0x0,SIZE1); memset(tmp10,0x0,SIZE1); memset(tmp11,0x0,SIZE1); memset(tmp12,0x0,SIZE1); memset(tmp13,0x0,SIZE1); memset(tmp14,0x0,SIZE1); memset(tmp15,0x0,SIZE1); memset(tmp16,0x0,SIZE1); memset(tmp17,0x0,SIZE1); memset(tmp18,0x0,SIZE1); memset(tmp19,0x0,SIZE1); memset(eg5,0x0,sizeof(eg5)); desttmp=(char *)malloc(sizeof(char)*3); memset(alarm_site_name,0,31); memset(alarm_time,0,19); memset(alarm_name_no,0,2); while(1) { if (fgets(buf,256,stdin)==NULL){ getsystime(time); m_debug("%s fgets NULL data\n",time); sleep(60); if(n==4){ printf("n=%d\n",n); n=0; system("ksh /usr/csc/huawei/hw.sh"); /*sleep(160);*//*edited by w 020106*/ printf("wait!\n"); } n++; continue; } else{ if (strstr(buf,"+++")!=NULL){ sscanf(buf,"%s%s%s%s",tmp0,tmp1,tmp2,tmp3); strcpy(result,tmp2); strcat(result,tmp3); strcat(result,"|"); count=1; } if ((count==1)&& (strstr(buf,"ALARM")!=NULL)){ sscanf(buf,"%s%s%s%s%s",tmp4,tmp5,tmp6,tmp7,tmp8); memset(tmp4,0x0,SIZE1); for(i=0;i<HWCOUNT;i++){ if ( strncmp(tmp8,alarm_name[i].gjdm,4)==0){ memset(tmp6,0x0,SIZE1); sprintf(tmp6,"%s|%s|",alarm_name[i].status,alarm_name[i].type); sprintf(tmp4,"%s|%s",tmp5,tmp6); strcat(result,tmp4); count=2; } } } if ((count==2)&&(strstr(buf,"对象编号")!=NULL)){ sscanf(buf,"%s%s%s",tmp9,tmp10,tmp11); strcpy(jizhan,tmp11); count=3; } if ((count==3)&&(strstr(buf,"模块编号")!=NULL)){ sscanf(buf,"%s%s%s",tmp12,tmp13,tmp14); strcat(jizhan,tmp14); count=4; } if ((count==4)&&(strstr(buf,"定位信息")!=NULL)){ ReplaceChar(buf,strlen(buf)); sscanf(buf,"%s%s%s%s%s",tmp15,tmp16,tmp17,tmp18,tmp19); strcat(jizhan,tmp19); strcat(result,jizhan); p_debug("result=[%s]\n",result); semid=opensem(SEMKEY1); if (semid<0){ syslog("get semaphar err",__FILE__,__LINE__); exit(-3); } sem_open(semid); ReplaceChar(result,strlen(result)); memset(eg5,0x0,7); sscanf(result,"%s%s%s%s%s",eg1,eg2,eg3,eg4,eg5); s_debug("eg5=[%s]",eg5); EXEC SQL CONNECT :USRNAME identified by :PASSWD; if (sqlca.sqlcode!=0){ s_debug("sqlcode =[%d]",sqlca.sqlcode); } else{ s_debug("------------ hwdata.c begin ------------\n"); trimstrcpy(alarm_site_name,eg5,strlen(eg5)); s_debug("connect success=[%d]\n",sqlca.sqlcode); if (strncmp(eg5,"294",3)==0){ strcpy(icity_no,"49"); }/* 12-10 add*/ else if (strncmp(eg5,"2",1)==0){ strcpy(icity_no,"52"); } trimstrcpy(vcity_no,icity_no,strlen(icity_no)); EXEC SQL EXECUTE begin hwei2(:alarm_site_name,'04',:vcity_no); end; end-exec; if (sqlca.sqlcode==0){ EXEC SQL COMMIT; trimstrcpy(alarm_name_no,eg4,strlen(eg4)); s_debug("alarm_name_no=[%s]\n",alarm_name_no); trimstrcpy(flag,eg3,strlen(eg3)); s_debug("flag=[%s]\n",flag); s_debug("alarm_site_name=[%s]\n",alarm_site_name); trimstrcpy(alarm_time,eg1,strlen(eg1)); s_debug("alarm_time=[%s]\n", alarm_time); trimstrcpy(alarm_queue,eg2,strlen(eg2)); s_debug("alarm_queu=[%s]\n", alarm_queue); EXEC SQL EXECUTE begin hwei(:flag,:alarm_name_no,:alarm_time,:alarm_site_name,\ :alarm_queue,:rtn); end; end-exec; if (strncmp(rtn,"0000",4)==0){ s_debug("procdure succ\n"); } if (strncmp(rtn,"1000",4)==0){ s_debug("record exist\n"); } if (strncmp(rtn,"3000",4)==0){ s_debug("norecore ist\n"); } if (strncmp(rtn,"4000",4)==0){ s_debug("many record \n"); } if (strncmp(rtn,"2000",4)==0){ s_debug("procdure fail\n"); } if (sqlca.sqlcode==0){ EXEC SQL COMMIT RELEASE; } else{ s_debug("hwei proc->sqlcode=[%d]\n",sqlca.sqlcode); EXEC SQL ROLLBACK RELEASE; } s_debug("------------ hwdata.c end ------------\n\n\n\n\n"); } else s_debug("hwei2 proc->sqlcode=[%d]\n",sqlca.sqlcode); } /*semid=opensem(SEMKEY1); if (semid<0){ syslog("get semaphar err",__FILE__,__LINE__); exit(-3); }*/ sem_close(semid); } } memset(alarm_site_name,0,31); memset(alarm_time,0,19); memset(alarm_name_no,0,2); memset(buf,0x0,SIZE); memset(eg1,0,SIZE); memset(eg2,0,SIZE); memset(eg3,0,SIZE); memset(eg4,0,SIZE); memset(eg5,0,SIZE); }}#define TEMPDIR "/usr/csc/print"#define TRUE 1void p_debug(va_alist)va_dcl{ va_list args; char *fmt; FILE *fp; char filename[SIZE1], *ttyname(), *tname; tname = ttyname(TRUE); sprintf(filename, "%s/sndapp", TEMPDIR); fp = fopen(filename, "a"); va_start(args); fmt = va_arg(args, char *); vfprintf(fp, fmt, args); va_end(args); fclose(fp);}void m_debug(va_alist)va_dcl{ va_list args; char *fmt; FILE *fp; char filename[SIZE1],*ttyname(),*tname; tname=ttyname(TRUE); sprintf(filename,"%s/snderr",TEMPDIR); fp=fopen(filename,"a"); va_start(args); fmt=va_arg(args,char *); vfprintf(fp,fmt,args); va_end(args); fclose(fp);}void getsystime(char *tmp){ time_t tv; tv=time((time_t *) 0); strcpy(tmp,ctime(&tv)+4); tmp[20]=0;} int ReplaceChar(char *str,int len) { int i = 0; while (i < len) { start: if (str[i] == '|') { str[i] = ' '; i++; goto start; } if (str[i] == '\n') { str[i] = ' '; i++; goto start; } if (str[i] == '=') { str[i] = ' '; i++; goto start; } if (str[i] == ',') { str[i] = ' '; i++; goto start; } i++; } return(0); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -