C語言讀取及修改簡單配置檔案內容

2021-08-02 05:14:14 字數 1833 閱讀 8344

執行環境:ubuntu14.04

此方式適合小的配置檔案,不適合大型檔案。

假如有檔案內容為:

ip=192.168.1.20

mask=255.255.255.0

dns=192.168.1.1

#include 

#include

#include

#include

#include

#define str_networkcfg_file "./net.conf"

struct info_t;

/*獲取指定字段(name)資訊存入result中*/

int getfile_info(char *name,char *result)

; char buffer1[100] = ;

char buffer2[100] = ;

uint8_t flag = 0;

int buffer_size=0;

file *fp = fopen(str_networkcfg_file, "r");

if(fp == null)

while(1)

sscanf(linebuffer, "%[^=]=%[^=]", buffer1,buffer2);

if(!strcmp(name, buffer1))

memset(buffer1,0,sizeof(buffer1));

memset(buffer2,0,sizeof(buffer2));

memset(linebuffer,0,sizeof(linebuffer));

} fclose(fp);

if(flag != 1)

return

1; return0;}

/*獲取所有檔案資訊,存入結構體中,遇到需修改的字段,修改後存入結構體,後再全部重新寫入儲存*/

int changefile_info(char *name,char *writedata)

; char buffer[80];

file *fp = fopen(str_networkcfg_file, "r");

if(fp == null)

for(i = 0 ; i < 12 ; i++)

sscanf(linebuffer, "%[^=]=%[^=]", info[i].name,info[i].data);

if(!strcmp(info[i].name, name))

memset(linebuffer,0,sizeof(linebuffer));

cnt++;

} fclose(fp);

if(flag)

for(i = 0 ; i < cnt ; i++)

fclose(fp);

} else

return

1; return0;}

int main()

; char *writedata = "192.168.10.33";

getfile_info("ip",result);

printf("result:%s\n",result);

changefile_info("ip",writedata);

getfile_info("ip",result);

printf("result:%s\n",result);

return

0;}

**執行結果:

result:192.168.1.20

result:192.168.10.33

開啟檔案檢視,ip=192.168.10.33

C語言配置檔案讀取以及修改

include paramread.h include common.h 讀取字元型別的值 int getinikeystring char dst,const char title,const char key,const char filename else else fclose fp str...

C語言讀取配置檔案

配置檔案 a.txt 1 2 3 ip sadf ip 192.168.246.22 dns 218.85.157.99 讀取規則 1 以 開頭的為注釋,不讀取 2 空行也不讀取 3 兩邊可以有空格 這裡先講下要用到的知識點 1 斷言的使用 assert 巨集用法 注意 assert是巨集,而不是函...

C 讀取配置檔案

1 首先引入標頭檔案 include 2 獲取應用程式的當前路徑 char buf 1000 getcurrentdirectory 1000,buf 得到當前工作路徑3 獲取配置檔案的路徑 char path 1024 definesysconfig config.ini sprintf path...