1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <unistd.h>
5
6 #include "iniparser.h"
7
8 void create_example_ini_file(void);
9 int parse_ini_file(char * ini_name);
10
main(int argc,char * argv[])11 int main(int argc, char * argv[])
12 {
13 int status ;
14
15 if (argc<2) {
16 create_example_ini_file();
17 status = parse_ini_file("example.ini");
18 } else {
19 status = parse_ini_file(argv[1]);
20 }
21 return status ;
22 }
23
create_example_ini_file(void)24 void create_example_ini_file(void)
25 {
26 FILE * ini ;
27
28 if ((ini=fopen("example.ini", "w"))==NULL) {
29 fprintf(stderr, "iniparser: cannot create example.ini\n");
30 return ;
31 }
32
33 fprintf(ini,
34 "#\n"
35 "# This is an example of ini file\n"
36 "#\n"
37 "\n"
38 "[Pizza]\n"
39 "\n"
40 "Ham = yes ;\n"
41 "Mushrooms = TRUE ;\n"
42 "Capres = 0 ;\n"
43 "Cheese = Non ;\n"
44 "\n"
45 "\n"
46 "[Wine]\n"
47 "\n"
48 "Grape = Cabernet Sauvignon ;\n"
49 "Year = 1989 ;\n"
50 "Country = Spain ;\n"
51 "Alcohol = 12.5 ;\n"
52 "\n");
53 fclose(ini);
54 }
55
56
parse_ini_file(char * ini_name)57 int parse_ini_file(char * ini_name)
58 {
59 dictionary * ini ;
60
61 /* Some temporary variables to hold query results */
62 int b ;
63 int i ;
64 double d ;
65 const char * s ;
66
67 ini = iniparser_load(ini_name);
68 if (ini==NULL) {
69 fprintf(stderr, "cannot parse file: %s\n", ini_name);
70 return -1 ;
71 }
72 iniparser_dump(ini, stderr);
73
74 /* Get pizza attributes */
75 printf("Pizza:\n");
76
77 b = iniparser_getboolean(ini, "pizza:ham", -1);
78 printf("Ham: [%d]\n", b);
79 b = iniparser_getboolean(ini, "pizza:mushrooms", -1);
80 printf("Mushrooms: [%d]\n", b);
81 b = iniparser_getboolean(ini, "pizza:capres", -1);
82 printf("Capres: [%d]\n", b);
83 b = iniparser_getboolean(ini, "pizza:cheese", -1);
84 printf("Cheese: [%d]\n", b);
85
86 /* Get wine attributes */
87 printf("Wine:\n");
88 s = iniparser_getstring(ini, "wine:grape", NULL);
89 printf("Grape: [%s]\n", s ? s : "UNDEF");
90
91 i = iniparser_getint(ini, "wine:year", -1);
92 printf("Year: [%d]\n", i);
93
94 s = iniparser_getstring(ini, "wine:country", NULL);
95 printf("Country: [%s]\n", s ? s : "UNDEF");
96
97 d = iniparser_getdouble(ini, "wine:alcohol", -1.0);
98 printf("Alcohol: [%g]\n", d);
99
100 iniparser_freedict(ini);
101 return 0 ;
102 }
103
104
105