日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux c配置文件书写格式,读取配置文件源代码[linux c]

發(fā)布時間:2024/4/19 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux c配置文件书写格式,读取配置文件源代码[linux c] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自:http://gcody.wwww.blog.ccidnet.com/blog-htm-do-showone-uid-36931-type-blog-itemid-114988.html

自己今天根據(jù)項(xiàng)目里的需要編寫出來的很簡單的函數(shù),讀取配置文件的一行內(nèi)容,配置文件格式為:

#888888注釋

name = value

可以包含注釋,不用考慮空格,和項(xiàng)目名稱大小寫,函數(shù)返回項(xiàng)目內(nèi)容。

#ifndef READCONF_H

#define READCONF_H

#include "head.h"

#define CONLINELENGTH 1024 //配置文件一行的長度最大值

char *ReadConfigfile(char *fileName, char *item);

#endif

#include "readconf.h" /************************** *函數(shù)功能:讀取配置文件的一行信息 *輸入?yún)?shù):配置文件的名字fileName,要讀取的項(xiàng)目名稱item(不用考慮空格及大小寫) *輸出結(jié)果:項(xiàng)目信息 *返回值:成功返回信息內(nèi)容,出錯返回NULL *******************************/ char *ReadConfigfile(char *fileName, char *item) { ?FILE *fp; ?char *locate = NULL; ?char *pmove = NULL; ?char confLine[CONLINELENGTH] = {}; ?char context[CONLINELENGTH] ={}; ?int result = 1; ?char *pline; ?int itl; ? ?? ?if((fp = fopen(fileName, "r")) == NULL) ?{ ??printf("Open file : %s failed!!/n", fileName);? ??return NULL; ?} ? ?while(fgets(confLine, CONLINELENGTH, fp) != NULL) ?{ ??pline = confLine; ??if(*pline == '#') ??{ ???memset(confLine, '0', CONLINELENGTH); ???continue; ??} ??while(isspace(*pline) != 0)pline++; ??locate = strchr(pline, '='); ??if(locate == NULL) ??????????????? {??????? ???memset(confLine, '0', CONLINELENGTH); ??????????????????????? continue; ??????????????? } ??pmove = locate; ??pmove--; ??while(isspace(*pmove) != 0)pmove--; ??itl = pmove - pline + 1; ??if(itl == strlen(item)) ??{??? ???result = strncasecmp(pline, item, itl); ???if(result == 0) ???{ ????locate++; ????while(isspace(*locate) != 0)locate++; ????pmove = locate; ????while(isspace(*pmove) == 0)pmove++; ????if(pmove-locate+1>0) ????{ ?????strncpy(context, locate, pmove-locate+1); ?????break; ????} ????else ????{ ?????return NULL; ????} ???} ???else ???{ ????memset(confLine, '0', CONLINELENGTH); ????continue; ???} ??} ??else ??{ ???memset(confLine, '0', CONLINELENGTH); ???continue;? ??} ?} ?fclose(fp); ? ?return context; }

總結(jié)

以上是生活随笔為你收集整理的linux c配置文件书写格式,读取配置文件源代码[linux c]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。