• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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