1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
/* test_conf_parser_ov2.c test */
/* test all kinds of options and the conf file parser */
/* differently from test_conf_parser_ov.c, first scan the conf file and
then the command line */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdlib.h>
#include <stdio.h>
#include "test_conf_parser_cmd.h"
static struct my_args_info args_info;
int
main (int argc, char **argv)
{
struct test_conf_parser_cmd_parser_params *params;
/* initialize the parameters structure */
params = test_conf_parser_cmd_parser_params_create();
/*
initialize args_info, but don't check for required options
NOTICE: the other fields are initialized to their default values
*/
params->check_required = 0;
/* call the config file parser */
if (test_conf_parser_cmd_parser_config_file
("@srcdir@/test_conf2.conf", &args_info, params) != 0)
exit(1);
/*
override config file options,
do not initialize args_info, check for required options.
*/
params->initialize = 0;
params->override = 1;
params->check_required = 1;
/* call the command line parser */
if (test_conf_parser_cmd_parser_ext (argc, argv, &args_info, params) != 0)
exit(1) ;
printf ("value of required: %s\n", args_info.required_arg);
printf ("value of string: %s\n", args_info.string_arg);
printf ("value of no-short_given: %d\n", args_info.no_short_given);
printf ("value of int: %d\n", args_info.int_arg);
printf ("value of float: %f\n", args_info.float_arg);
/* release memory */
test_conf_parser_cmd_parser_free (&args_info);
free (params);
return 0;
}
|