对于GKeyFile生成的格式文件,同样可以通过此数据结构进行读取文件中的配置信息,生成的配置文件内容为:
[STARTUP]
x=300
y=600
center=true
timestamp=1314432584
random=0.78204092288815774
[PATH]
bin_path=/bin;/sbin;/usr/bin;/usr/local/bin;/home/jcodeer/bin;
这次使用GKeyFile将其中的每一键项读取出来,进行输出。程序代码:
#include <glib.h>
int main(int argc,char** argv){
GKeyFile* config = g_key_file_new();
g_key_file_load_from_file(config,"./019.ini",G_KEY_FILE_KEEP_COMMENTS|G_KEY_FILE_KEEP_TRANSLATIONS,NULL);
#define STARTUP "STARTUP"
#define PATH "PATH"
gchar* x = g_key_file_get_value(config,STARTUP,"x",NULL);
g_print("x = %s\n",x);
gchar* y = g_key_file_get_string(config,STARTUP,"y",NULL);
g_print("y = %s\n",y);
gboolean center = g_key_file_get_boolean(config,STARTUP,"center",NULL);
g_print("center = %d\n",center);
gint timestamp = g_key_file_get_integer(config,STARTUP,"timestamp",NULL);
g_print("timestamp = %u\n",timestamp);
gdouble random = g_key_file_get_double(config,STARTUP,"random",NULL);
g_print("random = %0.10f\n",random);
gsize length,i;
gchar** bin_path = g_key_file_get_string_list(config,PATH,"bin_path",&length,NULL);
g_print("bin_path=");
for(i = 0; i < length;i++){
g_print("%s;",bin_path[i]);
}
g_print("\n");
#undef STARTUP
#undef PATH
g_key_file_free(config);
return 0;
}