文件编程练手 [2] —— 编码实现修改配置文件的数值

原创首发于CSDN,转载请注明出,谢谢!
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);
        memset(readBuf,'\0',sizeof(readBuf));
        read(fdSrc, readBuf, size);

		//利用修改配置文件的数据。
        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」
  • 把该篇博文转移至二级专栏“Linux操作系统”,略有修改文章内容。 「2021.5.13 11:41」
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值