1. 程式人生 > 其它 >檔案程式設計練手 [2] —— 編碼實現修改配置檔案的數值

檔案程式設計練手 [2] —— 編碼實現修改配置檔案的數值

技術標籤:怪獸系統Linux(ubuntu)linuxubuntu

文章轉載請註明出處,加上原文連結,謝謝!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」