Linux下编写C代码修改配置文件

开发环境:ubuntu18.04_x64

源文件:updata.c

#include 
#include 
#include 
#include 
#include 
#include 
#include 

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

	char * readBuffer = NULL;

	if(argc != 3){
		printf("grammar error!\n");
		exit(-1);
	}

	fdSrc = open(argv[1],O_RDWR);	//打开要修改的配置文件
	
	int size = lseek(fdSrc,0,SEEK_END);	//用lseek函数返回文件的大小

	lseek(fdSrc,0,SEEK_SET);	//上面的函数会将光标移至末尾,用SEEK_SET,将光标返回文件头

	readBuffer = (char *)malloc(sizeof(char) * size + 8 ); //为存放原文件代码开辟空间(后面加八作为缓冲区)

	int n_read = read(fdSrc,readBuffer,size);	//将原文件的数据保存到readBuffer
	
	char *p = strstr(readBuffer,"LENGTH=");	//调用strstr函数找到第一次出现“LENGTH=”的位置,将光标移至L处
	p = p + strlen("LENGTH=");	//将光标向后偏移至要修改的位置
	*p = '5';	//将要改的值写入
	
	lseek(fdSrc,0,SEEK_SET);	//光标复位
	
	int n_write = write(fdSrc,readBuffer,strlen(readBuffer));	//将修改后的数据写回元文件

	close(fdSrc);	//将文件从动态区返回静态
	return 0;
}

1.原文件内容:

Linux下编写C代码修改配置文件_第1张图片

2. 编译及使用:

 -o updata:表示编译给生成的文件起名为updata(不加则默认生成啊a.out)

./updata TEST.config: ./表示运行 ,updata 是刚刚编译生成的文件,TEST.config是要修改的问题(若刚刚没有添加-o updata则:./a.out TEST.config)

3.修改后文件:

Linux下编写C代码修改配置文件_第2张图片

 

你可能感兴趣的:(linux,c语言,运维)