//EDIT NAME Ryosuke Matsumoto //EDIT DATE 2007.03.06 #include #include #include #include void word_search(FILE *fp1,char str[],char token,char element[],char word[],int i,int t); FILE *fp1,*fp2; int i=1,t=0; char token; char filename[256],element[256],word[256],str[1024]; int main(int argc, char* argv[]) { if(argc==1) { system("mailq > mailq.txt"); strcpy(filename,"mailq.txt"); strcpy(word,"MAILER-DAEMON"); } else if(strcmp(argv[1],"-h")==0) { if(argc!=2) { printf("PROGRAM ERROR!!!{./mailq_daemon -h}\n"); exit(1); } else { printf("====================HELP====================\n"); printf("-mailq TOADDRESS search-\n"); printf("[./mailq_daemon]] -- FROMADDRESS='MAILER-DAEMON' DATA='mailq'\n"); printf("[./mailq_daemon -s [FILE_NAME]] -- FROMADDRESS='MAILER-DAEMON' DATA='FILE_NAME'\n"); printf("[./mailq_daemon -w [SEARCH_WORD]] -- FROMADDRESS='SEARCH_WORD' DATA='mailq'\n"); printf("[./mailq_daemon -sw [SEARCH_WORD] [FILE_NAME]] -- FROMADDRESS='SEARCH_WPRD' DATA='FILE_NAME'\n"); printf("============================================\n"); exit(1); } } else if(strcmp(argv[1],"-s")==0) { if(argc!=3) { printf("FILE OPEN ERROR!!![./mailq_daemon -s [FILE_NAME]]\n"); exit(1); } strcpy(filename,argv[2]); strcpy(word,"MAILER-DAEMON"); } else if(strcmp(argv[1],"-w")==0) { if(argc!=3) { printf("FILE OPEN ERROR!!![./mailq_daemon -w [SEARCH_WORD]]\n"); exit(1); } system("mailq > mailq.txt"); strcpy(filename,"mailq.txt"); strcpy(word,argv[2]); } else if(strcmp(argv[1],"-sw")==0) { if(argc!=4) { printf("FILE OPEN ERROR!!![./mailq_daemon -sw [SEARCH_WORD] [FILE_NAME]]\n"); exit(1); } strcpy(filename,argv[3]); strcpy(word,argv[2]); } else { printf("PROGRAM ERROR!!!{./mailq_daemon -h}\n"); exit(1); } if((fp1=fopen(filename,"r"))==NULL) { printf("FILE OPEN ERROR!!![NOTHING FILE(%s)]\n",filename); exit(1); } word_search ( fp1, str, token, element, word, i, t ); fclose(fp1); return 0; } void word_search(FILE *fp1,char str[],char token,char element[],char word[],int i,int t) { strcpy(element,word); while(feof(fp1)==0)//(1) { if(token=='\n') { while(feof(fp1)==0) { token=fgetc(fp1); if(isspace(token)!=0||token=='(') { while(token!='\n') { token=fgetc(fp1); } } else { break; } } } else { token=fgetc(fp1); } if(token==element[0]) { while(feof(fp1)==0)//(2) { token=fgetc(fp1); if(token!=element[i]) { i=1; break; //to(1) } if(element[i+1]=='\0') { fgets(str,1024,fp1); fgets(str,1024,fp1); if(isspace(str[0])==0) { fgets(str,1024,fp1); } while(feof(fp1)==0) { while(isspace(str[t])!=0) { t++; } while(str[t]!='\n') { printf("%c",str[t]); t++; } fgets(str,1024,fp1); printf("\n"); t=0; if(strcmp(str,"\n")==0) { strcpy(str,"slv83bv74vq630fnq0nm84h3na0"); i=1; break; //to(2) } } } if(strcmp(str,"slv83bv74vq630fnq0nm84h3na0")==0) { strcpy(str,"\0"); break; } i++; }//(2) } }//(1) }