int main(int argc, char **argv) { enum arg_index ret; int fd; while ((ret = arg_parser(argc, argv, args)) != ARG_DONE) { switch (ret) { case ARG_help: display_help_text(argv[0], arg_str, usage_str, arg_desc_str, args); return 0; case ARG_version: printf("%s", version_text); return 0; case ARG_EXTRA: fd = open(argarg, O_RDONLY | O_CREAT, 0777); if (fd == -1) { perror(argarg); return 0; } close(fd); break; case ARG_ERR: default: return 0; } } return 0; }
int main(int argc, char **argv) { enum arg_index ret; while ((ret = arg_parser(argc, argv, args)) != ARG_DONE) { switch (ret) { case ARG_help: display_help_text(argv[0], arg_str, usage_str, arg_desc_str, args); return 0; case ARG_version: printf("%s", version_text); return 0; case ARG_EXTRA: ret = mkdir(argarg, 0777); if (ret) { perror(argarg); return 0; } break; case ARG_ERR: default: return 0; } } return 0; }
/* Help Menu */ void display_help_screen(Menu* help_menu) { int win_width, win_height; SDL_GetWindowSize(help_menu->window.win, &win_width, &win_height); display_help_text(help_menu, win_width, win_height); display_back_button(help_menu, win_width, win_height); }
void parse_args(int argc, char **argv, struct arg_state *s) { enum arg_list ret; while ((ret = arg_parser(argc, argv, cmips_args)) != ARG_DONE) { switch (ret) { case ARG_help: display_help_text(argv[0], cmips_args); exit(0); break; case ARG_version: printf("%s", version_text); exit(0); break; case ARG_quiet: s->quiet = 1; break; case ARG_run: s->run = 1; break; case ARG_noinput: s->noinput = 1; break; case ARG_script: s->cmd_script = argarg; break; case ARG_EXTRA: if (emulator_load_from_file(&cmips_emu, argarg)) { printf("Error assembling file.\n"); s->quiet = 1; s->noinput = 1; return ; } break; default: case ARG_ERR: /* Error message already printed by getopt_long() */ exit(0); break; } } return ; }
int main(int argc, char **argv) { bool show_all = false; int dirs = 0, i; const char *dirarray[DIRMAX] = { NULL }; enum arg_index ret; while ((ret = arg_parser(argc, argv, ls_args)) != ARG_DONE) { switch (ret) { case ARG_help: display_help_text(argv[0], usage_str, desc_str, ls_args); return 0; case ARG_all: show_all = true; break; case ARG_EXTRA: if (dirs < sizeof(dirarray)) { dirarray[dirs++] = argarg; } else { fprintf(stderr, "%s: To many directories given to ls\n", argv[0]); return 1; } break; default: return 0; } } if (dirs == 0) { dirarray[dirs++] = "./"; } for (i = 0; i < dirs; i++) { DIR *directory = opendir(dirarray[i]); if (directory == NULL) { perror(*argv); return 1; } list_items(directory, show_all); printf("\n"); } }
int main(int argc, char **argv) { const char *iface = NULL; enum arg_index ret; struct ifreq ifreq; char *cmd = NULL, *cmd_arg = NULL; prog = argv[0]; while ((ret = arg_parser(argc, argv, args)) != ARG_DONE) { switch (ret) { case ARG_help: display_help_text(argv[0], arg_str, usage_str, arg_desc_str, args); return 0; case ARG_version: printf("%s", version_text); return 0; case ARG_EXTRA: if (!iface) { iface = argarg; } else if (!cmd) { cmd = argarg; } else if (!cmd_arg) { cmd_arg = argarg; } else { printf("%s: Too many arguments\n", argv[0]); return 0; } break; case ARG_ERR: default: return 0; } } netdev_fd = open(NETDEV, O_RDONLY); if (netdev_fd == -1) { perror(NETDEV); return 1; } if (iface) { strncpy(ifreq.ifr_name, iface, IFNAMSIZ); ret = ioctl(netdev_fd, SIOCGIFINDEX, &ifreq); if (ifreq.ifr_index == -1 || ret) { printf("Unable to access %s: %s\n", iface, strerror(errno)); return 1; } if (cmd) execute_cmd(&ifreq, cmd, cmd_arg); else display_iface(&ifreq); } else { int i = 0; int err = 0; int found = 0; for (; !err; i++) { ifreq.ifr_index = i; err = ioctl(netdev_fd, SIOCGIFNAME, &ifreq); if (!err) { found = 1; display_iface(&ifreq); } } if (!found) printf("No Network Interfaces found\n"); } close(netdev_fd); return 0; }