執行環境: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...