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

下面是一段关于删除某个文件中特定一行(知你事先知道这一行的内容)的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操作(效果差不多),但是再涉及硬链接的存储的时候,效果是不一样的(可以不用管)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值