文章转载请注明出处,加上原文链接,谢谢!https://blog.csdn.net/weixin_46959681/article/details/112784678
文章目录
配置文件修改的典型场景
软件在实际运行过程中,出于实际的工作需求必然会读取、修改相对应的配置文件的数据。经典游戏如贪吃蛇的移动速度、长度、食物等等,这些都是必须要在游戏运行过程中不停地更新数据。
配置文件数据修改
将如下的配置文件 config.text
中的长度 LENG=9
修改成 LENG=5
。
/* 文件 config.text */
SPEED=5
LENG=9
SCORE=60
LEVEL=20
演示代码: demo1.c
/* 文件demo1.c */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.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 + 20);
read(fdSrc, readBuf, size);
//利用修改配置文件的数据。(函数strstr自行搜索。)
char *p = strstr(readBuf, "LENG=");
if(p == NULL){
printf("Not found the string your search.\n");
}
p = p + strlen("LENG=");
//单引号表示的是字符。
*p = '5';
lseek(fdSrc, 0, SEEK_SET);
write(fdSrc, readBuf, strlen(readBuf));
free(readBuf);
close(fdSrc);
return 0;
}
编译器运行:
运行结果:
在图片中可以看到,原来的 LENG=9 已经被修改为 LENG=5 。
文章更新记录
- 文本初次完成。(这篇拖延症犯了!)「2021.1.18 16:08」
- 添加了两张演示图片。 「2021.1.18 16:37」
- 文章部分内容进行了顺序调整。 「2021.1.19 9:11」