Linux實現配置檔案的修改(學習筆記2)

2021-10-22 14:22:57 字數 3254 閱讀 9227

總結

文章更新記錄

軟體和遊戲執行過程中經常會對其配置檔案進行修改,本文介紹一種簡單的修改配置檔案的方法。

思路如下:

找到需要修改的位置

指標後移相應的長度

修改對應位置的值

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 ...