用文件操作修改其他文件里的配置文件
比如 有这么一个文件
我们需要修改其中的某些内容
1.找到位置
2.移动多大字节单位
3.修改
#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<fcntl.h>
#include<unistd.h>
#include<string.h>
#include<stdlib.h>
//修改配置文件
int main(int argc,char **argv)
{
int fd;
char *readbuf = NULL;
if(argc !=2)
{
printf("pararm error");
exit(-1);
}
fd = open(argv[1],O_RDWR); //打开文件 ./1 1txt 修改 1.txt里面信息
//文件描述符,fd == 0 打开文件失败,fd > 0 打开文件成功
int size= lseek(fd,0,SEEK_END); //光标移到尾
lseek(fd,0,SEEK_SET); //光标移动
readbuf =(char *)malloc(sizeof(char)*size + 8);
int n_read = read(fd,readbuf,size); //读取文件fd到readbuf里面
char *p= strstr(readbuf,"LENG="); //在readbuf里面查询字符串
if(p==NULL)
{
printf("not found");
exit(-1);
}
p= p +strlen("LENG="); //p指向位置偏移到’=‘后面一位
*p='5'; //修改指针指向的数据
lseek(fd,0,SEEK_SET); //光标重新移向首 避免重复内容
int n_write =write(fd,readbuf,strlen(readbuf)); //将readbuf写入fd里面
close(fd);
return 0;
}
修改“LENG=”后面的数字