linux读取ini文件
时间: 2023-07-18 17:03:47 浏览: 211
Linux读写ini文件
3星 · 编辑精心推荐
在Linux中,可以使用INI配置文件格式来存储配置信息。INI文件格式是一种常见的配置文件格式,它由一个或多个节组成,每个节包含一个或多个键值对。
以下是在Linux中读取INI文件的基本步骤:
1.使用标准C库函数打开INI文件:
```
FILE *fp = fopen("config.ini", "r");
if (fp == NULL) {
// 处理打开文件失败的情况
}
```
2.读取INI文件中的每一行:
```
char line[128];
while (fgets(line, 128, fp) != NULL) {
// 处理读取到的一行
}
```
3.解析每一行的内容:
在INI文件中,每一行的内容都是一个键值对,用等号 "=" 分隔。可以使用strtok函数将每一行分割成键和值。
```
char *key = strtok(line, "=");
char *value = strtok(NULL, "=");
```
4.将解析出来的键值对存储到一个数据结构中:
可以使用数组、链表等数据结构来存储解析出来的键值对。可以定义一个结构体来表示一个键值对,然后使用数组或链表来存储多个键值对。
```
struct key_value {
char *key;
char *value;
};
struct key_value kv_array[100];
int kv_count = 0;
kv_array[kv_count].key = strdup(key);
kv_array[kv_count].value = strdup(value);
kv_count++;
```
5.关闭INI文件:
```
fclose(fp);
```
完整的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct key_value {
char *key;
char *value;
};
int read_ini_file(const char *filename, struct key_value *kv_array, int max_count) {
FILE *fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file: %s\n", filename);
return -1;
}
char line[128];
int kv_count = 0;
while (fgets(line, 128, fp) != NULL) {
char *key = strtok(line, "=");
char *value = strtok(NULL, "=");
if (key != NULL && value != NULL && kv_count < max_count) {
kv_array[kv_count].key = strdup(key);
kv_array[kv_count].value = strdup(value);
kv_count++;
}
}
fclose(fp);
return kv_count;
}
int main() {
struct key_value kv_array[100];
int kv_count = read_ini_file("config.ini", kv_array, 100);
for (int i = 0; i < kv_count; i++) {
printf("%s=%s\n", kv_array[i].key, kv_array[i].value);
free(kv_array[i].key);
free(kv_array[i].value);
}
return 0;
}
```
阅读全文