当前位置: 技术问答>linux和unix
新手:在UNIX中如何读写.ini文件?有源码吗?
来源: 互联网 发布时间:2015-01-04
本文导语: 在UNIX中如何读写.ini文件?有源码吗? | 我有一段源码的几个函数,你可以参考 int GetNameValue(char *name, char *value) { char *p; char line[MAX_CFG_REC_LEN+1]; char fname[MAX_PATH_LEN+1]; FILE *f; ...
在UNIX中如何读写.ini文件?有源码吗?
|
我有一段源码的几个函数,你可以参考
int GetNameValue(char *name, char *value)
{
char *p;
char line[MAX_CFG_REC_LEN+1];
char fname[MAX_PATH_LEN+1];
FILE *f;
strcpy(fname,PPCONFIG);
f=fopen(fname,"r");
if(f==NULL) return rFAIL;
while(fgets(line,sizeof(line),f)!=NULL)
{
p=strstr(line,";");
if(p!=NULL)
{
p[0]=0;
}
if(ParseName(line,name)==rSUCCESS)
{
ParseValue(line,value);
break;
}
}
fclose(f);
return rSUCCESS;
}
/*---------------------------------------------------*/
/*---------------------------------------------------*/
int ParseName(char *str, char *name)
{
char *p;
char nstr[MAX_CFG_REC_LEN+1];
p=strstr(str,"=");
if(p==NULL) return rFAIL;
strncpy(nstr,str,p-str);
nstr[p-str]=0;
trim(nstr);
if(strcmp(nstr,name)==0)
{
return rSUCCESS;
}
return rFAIL;
}
/*---------------------------------------------------*/
/*---------------------------------------------------*/
int ParseValue(char *str, char *value)
{
char *p;
char nstr[MAX_CFG_REC_LEN+1];
p=strstr(str,"=");
if(p==NULL) return rFAIL;
strcpy(nstr,p+1);
trim(nstr);
strcpy(value,nstr);
return rSUCCESS;
}
int GetNameValue(char *name, char *value)
{
char *p;
char line[MAX_CFG_REC_LEN+1];
char fname[MAX_PATH_LEN+1];
FILE *f;
strcpy(fname,PPCONFIG);
f=fopen(fname,"r");
if(f==NULL) return rFAIL;
while(fgets(line,sizeof(line),f)!=NULL)
{
p=strstr(line,";");
if(p!=NULL)
{
p[0]=0;
}
if(ParseName(line,name)==rSUCCESS)
{
ParseValue(line,value);
break;
}
}
fclose(f);
return rSUCCESS;
}
/*---------------------------------------------------*/
/*---------------------------------------------------*/
int ParseName(char *str, char *name)
{
char *p;
char nstr[MAX_CFG_REC_LEN+1];
p=strstr(str,"=");
if(p==NULL) return rFAIL;
strncpy(nstr,str,p-str);
nstr[p-str]=0;
trim(nstr);
if(strcmp(nstr,name)==0)
{
return rSUCCESS;
}
return rFAIL;
}
/*---------------------------------------------------*/
/*---------------------------------------------------*/
int ParseValue(char *str, char *value)
{
char *p;
char nstr[MAX_CFG_REC_LEN+1];
p=strstr(str,"=");
if(p==NULL) return rFAIL;
strcpy(nstr,p+1);
trim(nstr);
strcpy(value,nstr);
return rSUCCESS;
}
|
标准的文件操作字符串处理阿,和系统没关系