int main(int argc, char *argv[]) { gboolean daemonize = FALSE; enum { cmd_standalone_mode = 1, cmd_help, cmd_version } cmd = cmd_standalone_mode; usbip_use_stderr = 1; usbip_use_syslog = 0; if (geteuid() != 0) g_warning("running non-root?"); for (;;) { int c; int index = 0; c = getopt_long(argc, argv, "vhdD", longopts, &index); if (c == -1) break; switch (c) { case 'd': usbip_use_debug = 1; continue; case 'v': cmd = cmd_version; break; case 'h': cmd = cmd_help; break; case 'D': daemonize = TRUE; break; case '?': show_help(); exit(EXIT_FAILURE); default: err("getopt"); } } switch (cmd) { case cmd_standalone_mode: do_standalone_mode(daemonize); break; case cmd_version: printf("%s\n", version); break; case cmd_help: show_help(); break; default: info("unknown cmd"); show_help(); } return 0; }
int main(int argc, char *argv[]) { static const struct option longopts[] = { { "daemon", no_argument, NULL, 'D' }, { "debug", no_argument, NULL, 'd' }, { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'v' }, { NULL, 0, NULL, 0 } }; enum { cmd_standalone_mode = 1, cmd_help, cmd_version } cmd; int daemonize = 0; int opt, rc = -1; usbip_use_stderr = 1; usbip_use_syslog = 0; if (geteuid() != 0) err("not running as root?"); cmd = cmd_standalone_mode; for (;;) { opt = getopt_long(argc, argv, "Ddhv", longopts, NULL); if (opt == -1) break; switch (opt) { case 'D': daemonize = 1; break; case 'd': usbip_use_debug = 1; break; case 'h': cmd = cmd_help; break; case 'v': cmd = cmd_version; break; case '?': usbipd_help(); default: goto err_out; } } switch (cmd) { case cmd_standalone_mode: rc = do_standalone_mode(daemonize); break; case cmd_version: printf(PROGNAME " (%s)\n", usbip_version_string); rc = 0; break; case cmd_help: usbipd_help(); rc = 0; break; default: usbipd_help(); goto err_out; } err_out: return (rc > -1 ? EXIT_SUCCESS : EXIT_FAILURE); }
int main(void) { do_standalone_mode(0, 0, 0); }