diff options
author | FreeArtMan <=> | 2016-01-24 13:13:09 +0000 |
---|---|---|
committer | FreeArtMan <=> | 2016-01-24 13:13:09 +0000 |
commit | 14ff7106da7e79432a85805e8ce49296f1cf9216 (patch) | |
tree | 02c100de21977c7222535e528c5348d988bd6dd1 /test/test1.c | |
download | libarg-14ff7106da7e79432a85805e8ce49296f1cf9216.tar.gz libarg-14ff7106da7e79432a85805e8ce49296f1cf9216.zip |
Initial
Diffstat (limited to 'test/test1.c')
-rw-r--r-- | test/test1.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/test/test1.c b/test/test1.c new file mode 100644 index 0000000..dacae2e --- /dev/null +++ b/test/test1.c @@ -0,0 +1,86 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "../arg.h" + +s_arg_ip src_ip = +{ + .port = 8080, + .ip = 0x7f000001 +}; + +s_arg_range freq_range = +{ + .start = 88, + .end = 108, + .step = 100e3 +}; + +s_arg_float ratio_float = +{ + .val = 0.8 +}; + +s_arg_list color_name_list = +{ + .num = 3, + .default_val = "RED", + .vals = {"RED","GREEN","BLUE"} +}; + +s_arg_val number_val = +{ + .ptr = NULL +}; + +def_arg cmd_arg[] = +{ + ARG_ENTRY("-a",IP,&src_ip), + ARG_ENTRY("-b",RANGE,&freq_range), + ARG_ENTRY("-c",FLOAT,&ratio_float), + ARG_ENTRY("-d",LIST,&color_name_list), + ARG_ENTRY("-e",VAL,&number_val), + ARG_ENTRY("-f",FLAG,NULL), + ARG_ENTRY("-g",FLAG,NULL), + {NULL,0,NULL} +}; + + +int main( int argc, char **argv ) +{ + + int i=0; + arg_t *cfg = NULL; + + i = 0; + while ( cmd_arg[i].param != NULL ) + { + printf("%s\n",cmd_arg[i].param); + i++; + } + + cfg = arg_load( argc, argv, cmd_arg ); + + if (cfg->size == 0) + { + printf("No arguments found\n"); + goto exit_error; + } + + for (i=0;i<cfg->size;i++) + { + printf("TYPE:%d\n", cfg->arg[i]->type); + } + + arg_print( cfg ); + + arg_free( cfg ); + + return 0; + +exit_error: + arg_free( cfg ); + + return -1; + +} |