44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
|
|
#ifndef __HYSA_FILE_COMM_H__
|
|||
|
|
#define __HYSA_FILE_COMM_H__
|
|||
|
|
|
|||
|
|
#include <ctype.h>
|
|||
|
|
#include <stdlib.h>
|
|||
|
|
#include <string.h>
|
|||
|
|
#include <stdbool.h>
|
|||
|
|
|
|||
|
|
|
|||
|
|
#define MAX_VALUE 64 /* max length of section,key,value*/
|
|||
|
|
typedef struct _option {
|
|||
|
|
char key[MAX_VALUE]; /* <20><>Ӧ<EFBFBD><D3A6> */
|
|||
|
|
char value[MAX_VALUE]; /* <20><>Ӧֵ */
|
|||
|
|
struct _option *next; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>ʶ */
|
|||
|
|
}Option;
|
|||
|
|
|
|||
|
|
typedef struct _data {
|
|||
|
|
char section[MAX_VALUE]; /* <20><><EFBFBD><EFBFBD>sectionֵ */
|
|||
|
|
Option *option; /* option<6F><6E><EFBFBD><EFBFBD>ͷ */
|
|||
|
|
struct _data *next; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>ʶ */
|
|||
|
|
}Data;
|
|||
|
|
|
|||
|
|
typedef struct {
|
|||
|
|
char comment; /* <20><>ʾע<CABE>͵ķ<CDB5><C4B7><EFBFBD> */
|
|||
|
|
char separator; /* <20><>ʾ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD> */
|
|||
|
|
char re_string[MAX_VALUE]; /* <20><><EFBFBD><EFBFBD>ֵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ֵ */
|
|||
|
|
int re_int; /* <20><><EFBFBD><EFBFBD>int<6E><74>ֵ */
|
|||
|
|
bool re_bool; /* <20><><EFBFBD><EFBFBD>bool<6F><6C>ֵ */
|
|||
|
|
double re_double ; /* <20><><EFBFBD><EFBFBD>double<6C><65><EFBFBD><EFBFBD> */
|
|||
|
|
Data *data; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ͷ */
|
|||
|
|
unsigned int num;
|
|||
|
|
}Config;
|
|||
|
|
|
|||
|
|
Config *cnf_load_config(const char *filename);
|
|||
|
|
bool cnf_get_value(Config *cnf, const char *section, const char *key);
|
|||
|
|
void print_config_info(Config *cnf);
|
|||
|
|
int cnf_release(Config *cnf);
|
|||
|
|
bool cnf_remove_section(Config *cnf, const char *section);
|
|||
|
|
bool cnf_add_option(Config *cnf, const char *section, const char *key, const char *value);
|
|||
|
|
Data *cnf_has_section(Config *cnf, const char *section);
|
|||
|
|
unsigned int cnf_get_total_num(Config *cnf);
|
|||
|
|
|
|||
|
|
#endif
|