自己也是菜鸟一枚,就简单写了一个,供以后使用,如有不足,请指点。。。
以下为获取部分:
测试:
配置文件:
结果:
下面为完整代码:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#define FILENAME "./xxx.conf"
char* Get_Config(char *Config_name)
{
char readbuf[512] = {0};
char findbuf[20] = {0};
char *retbuf;
retbuf = (char *)malloc(20);
strcpy(findbuf,Config_name);
int line = 0;
FILE *fp = fopen(FILENAME,"r");
if(fp == NULL)
{
perror("fopen");
return NULL;
}
while(fgets(readbuf,sizeof(readbuf),fp)) //逐行循环读取文件,直到文件结束
{
line++;
if(!strncmp(readbuf,"#",1) || !strncmp(readbuf,"\n",1)) //忽略注释(#)和空行
continue;
if(strstr(readbuf,findbuf)) //查找配置文件名
{
char *p=strchr(readbuf,'='); //确定“=”位置
do
{
p += 1;
}
while(*p == ' ');
sprintf(retbuf,"%s",p);
fclose(fp);
return retbuf;
}
}
return NULL;
}
int main(int argc, const char *argv[])
{
char *revbuf;
char *revbuf1;
revbuf=Get_Config("myname");
printf("revbuf: %s",revbuf);
free(revbuf); //防止内存泄漏
printf("*************************\n");
revbuf1=Get_Config("mydata");
printf("revbuf1: %s",revbuf1);
free(revbuf1);
return 0;
}