https://bugs.dpdk.org/show_bug.cgi?id=238
Bug ID: 238 Summary: [tree-wide] enhance getopt_long usage Product: DPDK Version: unspecified Hardware: All OS: All Status: CONFIRMED Severity: enhancement Priority: Low Component: other Assignee: dev@dpdk.org Reporter: david.march...@redhat.com Target Milestone: future We have quite a couple of the following pattern in the apps and examples (quoting examples/fips_validation/main.c as a bad example): struct option lgopts[] = { {REQ_FILE_PATH_KEYWORD, required_argument, 0, 0}, {RSP_FILE_PATH_KEYWORD, required_argument, 0, 0}, {FOLDER_KEYWORD, no_argument, 0, 0}, {CRYPTODEV_KEYWORD, required_argument, 0, 0}, {CRYPTODEV_ID_KEYWORD, required_argument, 0, 0}, {CRYPTODEV_ST_KEYWORD, no_argument, 0, 0}, {CRYPTODEV_BK_ID_KEYWORD, required_argument, 0, 0}, {CRYPTODEV_BK_DIR_KEY, required_argument, 0, 0}, {NULL, 0, 0, 0} }; while ((opt = getopt_long(argc, argvopt, "s:", lgopts, &option_index)) != EOF) { switch (opt) { case 0: if (strcmp(lgopts[option_index].name, REQ_FILE_PATH_KEYWORD) == 0) env.req_path = optarg; else if (strcmp(lgopts[option_index].name, RSP_FILE_PATH_KEYWORD) == 0) env.rsp_path = optarg; else if (strcmp(lgopts[option_index].name, FOLDER_KEYWORD) == 0) env.is_path_folder = 1; else if (strcmp(lgopts[option_index].name, ... We can get rid of all those strcmp by directly binding each longopt with an int enum. eal has been using this convention for quite some time, see: https://git.dpdk.org/dpdk/tree/lib/librte_eal/common/eal_options.h?h=v19.02 https://git.dpdk.org/dpdk/tree/lib/librte_eal/common/eal_common_options.c?h=v19.02 -- You are receiving this mail because: You are the assignee for the bug.