linux 修改配置文件

  • Post author:
  • Post category:linux




linux 修改配置文件

一、先在配置文件中写入内容

在这里插入图片描述

strstr:判断子字符串是否是父字符串的子串

如何修改配置文件:

(1)找到字符串的开头位置。

(2)从开头位置往后移,移到末尾位置。

(3)修改末尾位置的内容。

把LENG=3改成LENG=5

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

int   main(int argc,char **argv)
{
         int   fdSrc;//源文件
	

         char  *readbuf=NULL;//定义缓存区来存取内容
	
	
	    if(argc != 2)
        {
	       printf("pararm error\n");
	       exit(-1);
	    }


	 fdSrc=open(argv[1],O_RDWR);
	  //打开要修改的配置文件,以参数的方式传进配置文件
	  
     int  size=lseek(fdSrc,0,SEEK_END);
     //设置文件大小把光标从头移到文件的末端
     
	 lseek(fdSrc,0,SEEK_SET);
	 
     //计算文件大小的目的要得到缓存readbuf,要把光标移到文件的头

	 readbuf=(char *)malloc(sizeof(char)*size+8);

	 int  n_read=read(fdSrc,readbuf,size);//把内容读到readbuf中,
	  //size为读取文件的大小
         
	 char  *p=strstr(readbuf,"LENG=");
      //传递要修改的位置
      
	 if(p==NULL)
            {
	           printf("not found\n");
		       exit(-1);
	        }
       
          p=p+strlen("LENG=");//计算字符串的长度,
          //并把字符移到等于号的后面
          *p='5';//写到文件里的都是字符,*p为取内容
        //传递要修改的内容

	  lseek(fdSrc,0,SEEK_SET);
      int n_write =write(fdSrc,readbuf,strlen(readbuf));
       //strlen为要读取内容为字符串的形式的内容。
       
      //写入内容的时候,要重新的把光标移到文件的头
	  close(fdSrc);
	 //最终要关闭文件

      return 0;
}

修改后文件的内容

在这里插入图片描述

——@上官可编程



版权声明:本文为weixin_42900834原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。