#include #include #include "../arg.h" //define ip4 127.0.0.1:8080 s_arg_ip src_ip = { .port = 8080, .ip = 0x7f000001, .result = NULL }; //? //frequency range from 88:108 s_arg_range freq_range = { .start = 88, .end = 108, .step = 100e3, .result = NULL }; s_arg_float ratio_float = { .val = 0.8, .result = NULL }; char *color_list[] = {"RED","GREEN","BLUE"}; s_arg_list color_name_list = { .num = 3, .default_val = "RED", .vals = color_list, .result = NULL }; s_arg_val number_val = { .ptr = NULL, .default_ptr = NULL, .result = NULL }; s_arg_flag flag_help = { .used = 0, .result = NULL }; //cant be const def_arg cmd_arg[] = { ARG_ENTRY("-a",IP, &src_ip,"test ip address argument"), ARG_ENTRY("-b",RANGE,&freq_range,"test integer range argument"), ARG_ENTRY("-c",FLOAT,&ratio_float,"test float number"), ARG_ENTRY("-d",LIST, &color_name_list,"check list of values"), ARG_ENTRY("-e",VAL, &number_val,"check number values"), ARG_ENTRY("-f",FILE, NULL,"check file argument"), ARG_ENTRY("-g",FLAG, &flag_help,"check flag argument"), {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 - %s\n",cmd_arg[i].param, cmd_arg[i].help); i++; } cfg = arg_load( argc, argv, cmd_arg ); if (cfg->size == 0) { printf("No arguments found\n"); //goto exit_error; } for (i=0;isize;i++) { printf("TYPE:%d\n", cfg->arg[i]->type); } //arg_print( cfg ); if (flag_help.result != NULL) { printf("Help flag\n"); } arg_free( cfg ); return 0; exit_error: arg_free( cfg ); return -1; }