您的位置:首页 > 其它

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

2001-06-06 18:02 543 查看
#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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: