当前位置: 技术问答>linux和unix
linux读写配置文件
来源: 互联网 发布时间:2016-07-30
本文导语: 如何获取配置文件中所有的section? 有代码最好了,谢谢! | #include #include #include #include char *ReadConfigfile(char *fileName, char *item) { FILE *fp; char *locate = NULL; char *pmove = NULL; ...
如何获取配置文件中所有的section?
有代码最好了,谢谢!
有代码最好了,谢谢!
|
#include
#include
#include
#include
char *ReadConfigfile(char *fileName, char *item)
{
FILE *fp;
char *locate = NULL;
char *pmove = NULL;
char confLine[CONLINELENGTH] = {};
static 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;
}
你可以根据你的实际情况改改
可以读的格式
param=value
|
啥格式的说清楚
ini 还是 xml
ini 还是 xml
|
ini
http://www.chinaunix.net/jh/23/153353.html
xml
自己找个xml的解析库就可以了
tinyxml
mxml之类的
=======================
总之都没有现成的接口,都要自己写代码解析,或则用别人现成的。
http://www.chinaunix.net/jh/23/153353.html
xml
自己找个xml的解析库就可以了
tinyxml
mxml之类的
=======================
总之都没有现成的接口,都要自己写代码解析,或则用别人现成的。
|
|
http://doc.linuxpk.com/38234.html