/
githubmirror
/
inih
Обзор
Документация
Войти
/
githubmirror
/
inih
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/ini_example.c
53 строки
1 KB
Ben Hoyt
Fix uninitialized field issues in ini_example.c
22 апр 2021, 23:19
22 апр 2021, 23:19
4f251f0
Код
Авторство
О чём код?
/* Example: parse a simple configuration file */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "../ini.h" typedef struct { int version; const char* name; const char* email; } configuration; static int handler(void* user, const char* section, const char* name, const char* value) { configuration* pconfig = (configuration*)user; #define MATCH(s, n) strcmp(section, s) == 0 && strcmp(name, n) == 0 if (MATCH("protocol", "version")) { pconfig->version = atoi(value); } else if (MATCH("user", "name")) { pconfig->name = strdup(value); } else if (MATCH("user", "email")) { pconfig->email = strdup(value); } else { return 0; /* unknown section/name, error */ } return 1; } int main(int argc, char* argv[]) { configuration config; config.version = 0; /* set defaults */ config.name = NULL; config.email = NULL; if (ini_parse("test.ini", handler, &config) < 0) { printf("Can't load 'test.ini'\n"); return 1; } printf("Config loaded from 'test.ini': version=%d, name=%s, email=%s\n", config.version, config.name, config.email); if (config.name) free((void*)config.name); if (config.email) free((void*)config.email); return 0; }