linux系统编程之小应用修改配置文件
作者:互联网
修改配置文件
目的:修改配置文件里的数据
思路:
1.打开目标文件
2.把目标文件内容读取到缓存中
3.查找字符串(strstr)
4.找到之后指针向字符串的末尾的下一个偏移
5.修改当前的字符的值
6.把修改好的缓存内容写回目标文件
7.关闭目标文件
1.配置文件的数据
新建file文件把里面“WRITE=”后面的9改为6
LENG=5
SBEEK=7
WRITE=9
READ=3
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 fd;
if(argc != 2)
{
printf("parameter error\n");
exit(-1);
}
fd = open(argv[1], O_RDWR);//打开目标文件
if(fd == -1)
{
printf("open object file failed\n");
exit(-1);
}
int size = lseek(fd, 0, SEEK_END);
lseek(fd, 0, SEEK_SET);
char *readBuf = (char *)malloc(sizeof(char)*size);
int n_read = read(fd, readBuf, size);//把目标文件内容读取到缓存中
if(n_read == -1)
{
printf("read error\n");
exit(-1);
}
char *p = strstr(readBuf, "WRITE=");//查找字符串
p = p + 6;//找到之后指针向字符串的末尾的下一个偏移
*p = '6';//修改当前的字符的值
lseek(fd, 0, SEEK_SET);
int n_write = write(fd, readBuf, strlen(readBuf));//把修改好的缓存内容写回目标文件
if(n_write == -1)
{
printf("write error\n");
exit(-1);
}
else
{
printf("modify the file success\n");
}
close(fd);//关闭目标文件
return 0;
}
标签:printf,配置文件,int,编程,char,fd,linux,readBuf,include 来源: https://blog.csdn.net/qq_48850403/article/details/112061050