C/C++ @ Linux

kozux

聚合 管理
  0 Posts :: 4 Stories :: 0 Comments :: 0 Trackbacks
INI文件的格式与windows的完全一样
#include <libgnome/gnome-config.h>
//
写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);
编译:

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-11-16 11:37 kozux 阅读(1667) 评论(0)  编辑 收藏 引用 所属分类: C App @ Linux