函数简介

g_key_file_load_from_file 

g_key_file_set_string 

写一个ini文件

#include <glib.h>  
#include <stdio.h>  
  
int ini_write(void) {  
    GKeyFile *key_file;  
    GError *error = NULL;  
    gboolean result;  
  
    // 创建一个 GKeyFile 实例  
    key_file = g_key_file_new();  
  
    // 设置一个键值对  
    g_key_file_set_string(key_file, "ExampleSection", "ExampleKey", "ExampleValue");  
  
    // 可以继续设置更多的键值对  
    g_key_file_set_string(key_file, "AnotherSection", "AnotherKey", "AnotherValue");  
  
    // 将更改保存到文件  
    result = g_key_file_save_to_file(key_file, "example.ini", &error);  
    if (!result) {  
        // 处理保存错误  
        fprintf(stderr, "Error saving key file: %s\n", error->message);  
        g_error_free(error);  
        return 1;  
    }  
  
    // 释放 GKeyFile 实例  
    g_key_file_free(key_file);  
  
    return 0;  
}

 调用函数ini_write后,会生成一个example.ini文件。内容如下所示:

[ExampleSection]
ExampleKey=ExampleValue

[AnotherSection]
AnotherKey=AnotherValue

读ini文件测试

#include <glib.h>  
  
int ini_read(void) {  
    GKeyFile *key_file;  
    GError *error = NULL;  
    gboolean result;  
  
    // 创建一个 GKeyFile 实例  
    key_file = g_key_file_new();  
  
    // 从文件加载键值对  
    result = g_key_file_load_from_file(key_file, "example.ini", 0, &error);  
    if (!result) {  
        // 处理错误  
        g_print("Error loading key file: %s\n", error->message);  
        g_error_free(error);  
        return 1;  
    }  
  
    // 在这里,你可以使用 g_key_file_get_string()、g_key_file_get_integer() 等函数来访问键值对  
    // 例如:  
    char *value;
    value = g_key_file_get_string(key_file, "ExampleSection", "ExampleKey", &error);  
    if (value) {  
        g_print("Value: %s\n", value);  
        g_free(value); // 记得释放获取到的字符串  
    } else {  
        // 处理错误  
        g_print("Error getting key: %s\n", error->message);  
        g_error_free(error);  
    }  

    value = g_key_file_get_string(key_file, "AnotherSection", "AnotherKey", &error);  
    if (value) {  
        g_print("Value: %s\n", value);  
        g_free(value); // 记得释放获取到的字符串  
    } else {  
        // 处理错误  
        g_print("Error getting key: %s\n", error->message);  
        g_error_free(error);  
    }  
  
    // 释放 GKeyFile 实例和相关资源  
    g_key_file_free(key_file);  
    return 0;  
}

调用ini_read进行测试,在测试前,先执行ini_write函数生成文件example.ini,结果如下所示:

glib读写ini文件测试-LMLPHP

由结果可知,读取到了ini文件中的值。

小结

04-24 03:44