函数简介
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,结果如下所示:
由结果可知,读取到了ini文件中的值。