把TEST.config 中的TEST.config=4改成TEST.config =5
实现代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.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=(char *)malloc(sizeof(char)*size+8);
int n_read=read(fdSrc,readbuf,size);
char *p=strstr(readbuf,"LENG");
if(p==NULL){
printf("not found\n");
exit(-1);
}
p=p+strlen("LENG=");
*p='5';
lseek(fdSrc,0,SEEK_SET);
int n_write=write(fdSrc,readbuf,strlen(readbuf));
close(fdSrc);
return 0;
}
运行结果:
原来的TEST.config :
CLC@Embed_Learn:~/lianxi3$ cat TEST.config
SPEED=3
LENG=4
SCORE=9
LEVEL=5
执行后的TEST.config :
CLC@Embed_Learn:~/lianxi3$ ./a.out TEST.config
CLC@Embed_Learn:~/lianxi3$ cat TEST.config
SPEED=3
LENG=5
SCORE=9
LEVEL=5