删除某个文件中特定一行源码

来源:互联网 发布:android 打开数据库 编辑:程序博客网 时间:2024/06/05 06:23

下面是一段关于删除某个文件中特定一行(知你事先知道这一行的内容)的c语言算法代码,修改后就可以运用在项目中

void func( char *type){        FILE *fp_pap,*fp_chap;        FILE *fp_pap1,*fp_chap1;        char readbuf[512];        char cmpstr_data[512];        if(strcmp(type,"chap") ==0){                sprintf(cmpstr_data,"xxxx");                fp_chap = fopen (CHAP_CHAT_PATH, "rw+");                if (fp_chap == NULL){                           fclose (fp_chap);                        return -1;                 }                fp_chap1 = fopen (CHAP_CHAT_TMP_PATH, "w+");                if (fp_chap1 == NULL){                           fclose (fp_chap);                        fclose (fp_chap1);                        return -1;                 }                memset(readbuf,0,512);                fgets(readbuf,512,fp_chap);                while(!feof(fp_chap)){                        if (strstr(readbuf,cmpstr_data) != NULL){                                memset(readbuf,0,512);                                fgets(readbuf,512,fp_chap);                                continue;                        }                        fprintf(fp_chap1,"%s",readbuf);                        memset(readbuf,0,512);                        fgets(readbuf,512,fp_chap);                }                fclose(fp_chap);                fclose(fp_chap1);                if(unlink(CHAP_CHAT_PATH) !=0){                        return -1;                }                if( link(CHAP_CHAT_TMP_PATH,CHAP_CHAT_PATH) <0 ){                        return -1;                }                if(unlink(CHAP_CHAT_TMP_PATH) !=0){                        return -1;                }        }}


补充:其中link和unlink有点相当于copy和remove操作(效果差不多),但是再涉及硬链接的存储的时候,效果是不一样的(可以不用管)