我是靠谱客的博主 魔幻季节,最近开发中收集的这篇文章主要介绍Linux文件编程修改程序的配置文件1、修改配置文件的思路2、代码实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、修改配置文件的思路

(1)先找到要修改哪个配置文件

(2)打开要修改的配置文件

(3)将配置文件中所有的内容都读取到缓存区(buf)中

(4)利用strstr()函数,找到具体要修改的字符串,然后修改字符串对应的数据

(5)将修改后的数据,再写到配置文件中

strstr()函数详解

#include <string.h>
 
char *strstr(const char *haystack, const char *needle);
 
const char *haystack: 被查的目标 (str1)
const char *needle:   被查的对象 (str2)
 
返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。

  • 本地的配置文件:test.config

2、代码实现

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

int main(int argc,char **argv){

        int fdconfig;

        char *readBuf=NULL; //设置一个缓冲区,把读上来的数据保存在缓冲区buf中

        if(argc != 2){ 
                printf("param errorn");
                exit(-1);
        }

        fdconfig = open(argv[1],O_RDWR);       //打开配置文件

        int size =  lseek(fdconfig,0,SEEK_END);   //计算配置文件的大小

        readBuf = (char *)malloc(sizeof(char)* size);  //给缓存区分配内存
        lseek(fdconfig,0,SEEK_SET);         //光标移到文件开头


        int n_read = read(fdconfig,readBuf,size);   //把配置文件读取到缓存区中

        char *p = strstr(readBuf,"Name =");      //找到要修改位置的首地址

        p = p + strlen("Name =");     //从修改位置的首地址往后移,移到具体的位置
        if(p == NULL)
        {

                printf("not founfn");
        }

        *p = 'h';     //修改具体位置的数据
        lseek(fdconfig,0,SEEK_SET);     //光标移到文件开头


        int n_write = write(fdconfig,readBuf,strlen(readBuf));  //将修改后的数据写回到配置文件中

        close(fdconfig);    //关闭配置文件
        return 0;

}
                     

  • 执行结果如下:

最后

以上就是魔幻季节为你收集整理的Linux文件编程修改程序的配置文件1、修改配置文件的思路2、代码实现的全部内容,希望文章能够帮你解决Linux文件编程修改程序的配置文件1、修改配置文件的思路2、代码实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部