配置文件在Linux下使用得非常普遍。形如下面的这个文件就是一个典型的配置文件:
# this is just an example # there can be comments before the first group [First Group] Name=Key File Exampletthis value showsnescaping # localized strings are stored in multiple key-value pairs Welcome=Hello Welcome[de]=Hallo Welcome[fr_FR]=Bonjour Welcome[it]=Ciao Welcome[be@latin]=Hello [Another Group] Numbers=2;20;-200;0 Booleans=true;false;true;true
在Windows系统中,也存在这类文件,通常后缀名是ini。在GTK的世界中,称这类文件为Key File(因为这个文件包含很多的字段(key)?)。这两类文件看上去差不多,但是还是有一些区别的:
简单介绍完了,我们在用一个简单的例子:
#include #include int main(int argc, char **argv) { GKeyFile * config; gchar *str; config = g_key_file_new(); g_key_file_load_from_file(config, argv[1], 0, NULL); str = g_key_file_get_string(config, "options", "HoldPkg",NULL); printf("HoldPkg of options section is "%s"n", str); g_key_file_free(config); return 0; }
使用下面的命令编译:
gcc `pkg-config --cflags --libs glib-2.0` dummy.c
这里的`pkg-config –cflags –libs glib-2.0`用于自动查找调用glib所需的头文件和库文件路径,并且按照CFLAGS所需的格式输出。
我们用的范例配置文件(援引自pacman的配置文件)如下:
[options] HoldPkg = pacman glibc
运行效果怎么样呢?
[[email protected] tmp]$./a.out /etc/pacman.conf HoldPkg of options section is "pacman glibc"
范例程序很简单,但是五脏俱全,要使用glib来解析配置文件,大概有下面的几个流程:
数据类型包括字符串、整形、长整型、浮点……,以及这类数据组成的数组。
另外glib甚至还可以读写各个配置项上的注释,神奇吧?
更多的神奇,还是参考glib的官方文档去吧
转自:http://www.gooth.cn/b/archives/date/2010/08