用C语言读取INI文件,如何实现

用C语言读取INI文件,怎么实现
请问如何在UNIX环境下用标准C来读取INI文件?那位高手可以给出例子,小弟谢谢了!

------解决方案--------------------
读取INI文件的函数(C语言)


/*
* File: inifile.h
* Read INI File
*/
#ifndef _INIFILE_H_
#define _INIFILE_H_

#include
#include

/*
* char* GetInitKey(FileName, Section, Key)
* Return Key=> Value
* Ex:
*
* + [config]
* + dbhost=localhost
*
* strcpy(dbhost,GetInitKey( "config.ini ", "config ", "dbhost "));
*/
char * GetInitKey(char *filename, char *title,char *key)
{
FILE * fp;
char tmpLine[1024];
int rtnval;
int i = 0;
int flag = 0;
char * tmp;
static char tmpstr[1024];

if ((fp = fopen( filename, "r ")) == NULL )
{
return "have no such file ";
}
while (!feof(fp))
{
rtnval = fgetc( fp );
if ( rtnval == EOF )
{
break;
}
else
{
tmpLine[i++] = rtnval;
}
if ( rtnval == '\n ')
{
tmpLine[--i]=0;
i = 0;
tmp = strchr(tmpLine, '= ');

if (( tmp != NULL )&&(flag == 1))
{
if (strstr(tmpLine,key)!=NULL)
{
strcpy ( tmpstr, tmp + 1 );
fclose ( fp );
return tmpstr;
}
}
else
{
strcpy(tmpstr, "[ ");
strcat(tmpstr,title);
strcat(tmpstr, "] ");
if (strcmp(tmpstr,tmpLine)==0)
{
flag = 1;
}
}

}
}
fclose ( fp );
return " ";
}
#endif //_INIFILE_H_

使用方法:

char dbhost[20];
strcpy(dbhost,GetInitKey( "config.ini ", "config ", "dbhost "));

ini文件内容

[config]
dbhost=localhost
------解决方案--------------------
#include "stdio.h "

char * GetInitKey(char *filename, char *title,char *key)
{
FILE * fp;
char tmpLine[1024];
int rtnval;
int i = 0;
int flag = 0;
char * tmp;
static char tmpstr[1024];

if ((fp = fopen( filename, "r ")) == NULL )
{
return "have no such file ";
}
while (!feof(fp))
{
rtnval = fgetc( fp );
if ( rtnval == EOF )
{
break;
}
else
{
tmpLine[i++] = rtnval;
}
if ( rtnval == '\n ')
{
tmpLine[--i]=0;
i=0;
tmp = strchr(tmpLine, '= ');

if (( tmp != NULL )&&(flag == 1))
{
if (strstr(tmpLine,key)!=NULL)
{
strcpy ( tmpstr, tmp + 1 );
fclose ( fp );
return tmpstr;
}
}
else
{
strcpy(tmpstr, "[ ");
strcat(tmpstr,title);
strcat(tmpstr, "] ");
if (strcmp(tmpstr,tmpLine)==0)
{
flag = 1;
}
}

}
}
fclose ( fp );
return " ";
}

main()
{
char YCQH[20];
strcpy(YCQH,GetInitKey( "gameconfig.ini ", "config ", "YCQH "));
}


------解决方案--------------------
执行完后结果是sss
加上头文件string.h试试