總結
文章更新記錄
軟體和遊戲執行過程中經常會對其配置檔案進行修改,本文介紹一種簡單的修改配置檔案的方法。
思路如下:
找到需要修改的位置
指標後移相應的長度
修改對應位置的值
clc@embed_learn:
~$ cat test.config
id=mh
speed=
10length=
6height=
100
**如下(將length改為5):
#include
#include
#include
#include
#include
#include
#include
intmain
(int argc,
char
**ar**)
//int open(const char *pathname, int flags, mode_t mode);
//ssize_t write(int fd, const void *buf, size_t count);
//open the file and memorize the context to the readbuf;
fdsrc =
open
(ar**[1]
,o_rdwr)
; n_file =
lseek
(fdsrc,0,
seek_end);
lseek
(fdsrc,0,
seek_set);
readbuf =
(char*)
malloc
(sizeof
(char
)*n_file +8)
; n_read =
read
(fdsrc,readbuf,n_file)
;char
*p; p =
strstr
(readbuf,
"length=");
p = p +
strlen
("length=");
*p =
'5';
lseek
(fdsrc,0,
seek_set);
//ssize_t read(int fd, void *buf, size_t count);
// close(fd);
// fd = open("./file1",o_rdwr);
write
(fdsrc, readbuf,
strlen
(readbuf));
printf
("modified over.\n");
close
(fdsrc)
;return0;
}
id=mh
speed=
10length=
5height=
100
實現的可能性:
首先檢視man手冊關於write函式和read函式的引數說明:
#include
ssize_t read
(int fd,
void
*buf, size_t count)
;ssize_t write
(int fd,
const
void
*buf, size_t count)
;
#include
#include
#include
#include
#include
#include
#include
intmain()
//int open(const char *pathname, int flags, mode_t mode);
//ssize_t write(int fd, const void *buf, size_t count);
//open the file and memorize the context to the readbuf;
/*以可讀可寫的方式開啟file1*/
fdsrc =
open
("./file1"
,o_rdwr)
;/*將data的值寫入fd所代表的檔案中*/
n_write =
write
(fd,
&data,
sizeof
(int))
;// n_file = lseek(fdsrc,0,seek_end);
// p = strstr(readbuf,"length=");
// p = p + strlen("length=");
// *p = '5';
/*將游標移至檔案開頭*/
lseek
(fdsrc,0,
seek_set);
//ssize_t read(int fd, void *buf, size_t count);
// close(fd);
// fd = open("./file1",o_rdwr);
/*讀取file1的內容並將其寫入data2的位址*/
int n_read =
read
(fd,
&data2,
sizeof
(int))
;printf
("modified over.\n");
printf
("read %d \n"
,data2)
;close
(fd)
;return0;
}
注意:在執行此段**之前,最好將file1的檔案清空,檢視效果:
linux 指令:
rm file1()
//將file1檔案刪除
touch file1// touch命令用於修改檔案或者目錄的時間屬性,包括訪問時間和更改
//時間。若檔案不存在,系統會建立乙個新的檔案。
Linux網路屬性配置 修改配置檔案
由於伺服器建立的虛擬機器都是由dhcp進行分配ip的,可是最近一次斷電重啟以後ip就變了,於是就要修改一下配置檔案。具體說明如下 type ethernet 介面型別,常見的有ethernet 乙太網 bridge 橋接介面 bootproto dhcp 啟用此介面使用什麼協議來配置介面屬性 dhc...
Docker容器修改配置檔案的實現
一 進入容器 docker run option 映象名 向啟動容器中傳入的命令 常用可選引數說明 二 找到配置檔案 顯示檔案 ls結果如下 license.txt readme.textile config lib modules notice.txt bin data logs plugins ...
Linux下Qt修改配置檔案。
本來想要使用qsetting類來修改配置檔案的,可是後來發現用不了。如何找了很多資料都沒找到,突然想到能不能直接用qfile類來讀寫配置檔案呢,果斷嘗試,結果真的可以。不過寫的時候需要root許可權。下面是我修改etc network inte ces檔案的 qfile f etc network ...