Linux C (三)读写INI文件

INI文件的格式与windows的完全一样

写INI文件
 
   /* 第一个参数为的test.ini为文件名称,www为section,qwe为ident
       第二个参数为值
       它们之间用=分割,则会在程序当前目录生成INI文件
       据说用/分割会在 ~/.gnome或~/.gnome_private目录下生成INI文件
       不知道为什么,我改成/后运行出错,我的系统为FC6
     */
    gnome_config_set_string("=test.ini=www=qwe", "test123");
    /* 必须调用下面这句,否则将些不成功 */
    gnome_config_sync();
   
读INI文件
    char *str = gnome_config_get_string("=test.ini=www=qwe");
    // 另一种读法
    // 后面多出来的为默认值,
    // 通过执行gnome_config_get_string_with_default函数
    // 如果在INI文件中读出qwe的值,则o为0否则为1
    int o;
    char *str = gnome_config_get_string_with_default("=test.ini=www=qwe=oo", &o);
    printf("%s;%d", str, o);


记得要
#include <libgnome/gnome-config.h>

编译,因为对linux不熟悉,编译它让我费了很大的精力

gcc 文件.c `pkg-config --cflags --libs libgnome-2.0`

 

 

 

 

读取某一个SECTION下面的所有节(Ident)
例如:
[test]
t1=1
t2=3
t3=3
如何在不知道t1"t2"t3的情况下,读出它们呢?

int *handle; 


handle = gnome_config_init_iterator("=test.ini=test");  // 算是打开SECTION吧
char *key, *value;
while (handle) // 如果有值
{
    /* 读取下一个Ident */
    handle = gnome_config_iterator_next(handle, &key, &value);
    if (! key)   // 不为NULL
        break;  
    printf("%s;%s"r"n", key, value);  // 打出来看看
}

需要注意的是,这么读出来的顺序不是t1,t2,t3而是t3,t2,t1。

 

posted on 2008-08-11 09:13  dotjava  阅读(4175)  评论(0编辑  收藏  举报