檔案程式設計練手 [2] —— 編碼實現修改配置檔案的數值
阿新 • • 發佈:2021-02-06
技術標籤:怪獸系統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」