c 删除文件中指定的部分内容

王朝other·作者佚名  2006-01-08
宽屏版  字体: |||超大  

#include <stdio.h>

#include <dirent.h>

#include <string.h>

void search_file(char* dir);

void clear_file(char* FileName,char* Filename1);

DIR *dp;

struct dirent *dirp;

char* file;

FILE * fp=NULL;

char n_filename[50];

char o_filename[50];

char buf[80];

int pid;

int status;

char* logdir;

char* logbak;

char *optarg;

int main(char *argv[]){

logdir="/usr/local/tmp_file/";

logbak="/usr/local/tmp_file2/";

printf("Begin now !\n");

search_file(logdir);

}

void search_file(char* dir){

if ((dp = opendir(dir)) == NULL)

{

printf("directory %s is not found!\n",logdir);

}

/* print err */

while ((dirp = readdir(dp)) != NULL){

optarg = dirp->d_name;

/*printf ("%s \n" , optarg);*/

if ((strstr(optarg,".htm")!=NULL) |

(strstr(optarg,".vbs")!=NULL) |

(strstr(optarg,".asp")!=NULL) ) {

n_filename[0]='\0';

o_filename[0]='\0';

strcat(o_filename,logdir);

strcat(o_filename,"/");

strcat(o_filename,optarg);

strcat(n_filename,logbak);

strcat(n_filename,optarg);

printf("%s \n", o_filename);

clear_file(o_filename,n_filename);

/* status = rename(o_filename,n_filename); */

printf("%s %s rename file status : %d\n", o_filename, n_filename, status );

}

} /* for every log file */

closedir(dp);

sleep(20);

}

void clear_file(char* FileName,char* FileName1){

int i;

FILE *myFile=NULL,*fw=NULL;

char* line;

int count=0;

myFile = fopen(FileName,"r"); /* open file */

fw = fopen(FileName1,"w");

if(myFile == NULL)

{

printf("No config file myFile,Please config your system first!\n");

exit(1);

}

while( fgets(line,1024,myFile)!=NULL ) {

/* printf("line is : %s" , line); */

if ( strstr(line,"<vbscript")!=NULL){

count=1;

}else if ( strstr(line,"</vbscript")!=NULL){

count=0;

}else if (count==0){

fputs(line,fw);

}

}

/* read file by line */

fclose(myFile);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有