#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 fdSrc;
char *readbuf=NULL;
if(argc != 2){
printf("param error\n");
exit(-1);
}
fdSrc=open(argv[1],O_RDWR);
int size=lseek(fdSrc,0,SEEK_END);//计算文件大小
lseek(fdSrc,0,SEEK_SET);
readbuf=(char*)malloc(sizeof(char)*size+8);//给readbuf开辟空间
int n_read=read(fdSrc,readbuf,size);//文件内容读到readbuf里
char *p=strstr(readbuf,"LENG=");//找到字符串中的"LENG="这个子字符串
if(p==NULL){
printf("not find\n");
exit(-1);
}
p=p+strlen("LENG=");//指针偏移至值的位置
*p='9';//修改数据的值为9
lseek(fdSrc,0,SEEK_SET);//移动光标至开头
int n_write=write(fdSrc,readbuf,strlen(readbuf));//将修改后的文件内容写回至源文件
close(fdSrc);
return 0;
}
文件内容修改前
文件内容修改后