void usage_with_options(const char * const *usagestr, const struct option *opts) { exit_browser(false); usage_with_options_internal(usagestr, opts, 0); exit(129); }
static int run_builtin(struct cmd_struct *p, int argc, const char **argv) { int status; struct stat st; const char *prefix; char sbuf[STRERR_BUFSIZE]; prefix = NULL; if (p->option & RUN_SETUP) prefix = NULL; /* setup_perf_directory(); */ if (use_browser == -1) use_browser = check_browser_config(p->cmd); if (use_pager == -1 && p->option & RUN_SETUP) use_pager = check_pager_config(p->cmd); if (use_pager == -1 && p->option & USE_PAGER) use_pager = 1; commit_pager_choice(); perf_env__set_cmdline(&perf_env, argc, argv); status = p->fn(argc, argv, prefix); perf_config__exit(); exit_browser(status); perf_env__exit(&perf_env); bpf__clear(); if (status) return status & 0xff; /* Somebody closed stdout? */ if (fstat(fileno(stdout), &st)) return 0; /* Ignore write errors for pipes and sockets.. */ if (S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode)) return 0; status = 1; /* Check for ENOSPC and EIO errors.. */ if (fflush(stdout)) { fprintf(stderr, "write failure on standard output: %s", str_error_r(errno, sbuf, sizeof(sbuf))); goto out; } if (ferror(stdout)) { fprintf(stderr, "unknown write failure on standard output"); goto out; } if (fclose(stdout)) { fprintf(stderr, "close failed on standard output: %s", str_error_r(errno, sbuf, sizeof(sbuf))); goto out; } status = 0; out: return status; }
static int run_builtin(struct cmd_struct *p, int argc, const char **argv) { int status; struct stat st; const char *prefix; prefix = NULL; if (p->option & RUN_SETUP) prefix = NULL; /* setup_perf_directory(); */ if (use_browser == -1) use_browser = check_tui_config(p->cmd); if (use_pager == -1 && p->option & RUN_SETUP) use_pager = check_pager_config(p->cmd); if (use_pager == -1 && p->option & USE_PAGER) use_pager = 1; commit_pager_choice(); set_debugfs_path(); status = p->fn(argc, argv, prefix); exit_browser(status); if (status) return status & 0xff; /* Somebody closed stdout? */ if (fstat(fileno(stdout), &st)) return 0; /* Ignore write errors for pipes and sockets.. */ if (S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode)) return 0; /* Check for ENOSPC and EIO errors.. */ if (fflush(stdout)) die("write failure on standard output: %s", strerror(errno)); if (ferror(stdout)) die("unknown write failure on standard output"); if (fclose(stdout)) die("close failed on standard output: %s", strerror(errno)); return 0; }
static int run_builtin(struct cmd_struct *p, int argc, const char **argv) { int status; struct stat st; const char *prefix; prefix = NULL; if (p->option & RUN_SETUP) prefix = NULL; if (use_browser == -1) use_browser = check_tui_config(p->cmd); if (use_pager == -1 && p->option & RUN_SETUP) use_pager = check_pager_config(p->cmd); if (use_pager == -1 && p->option & USE_PAGER) use_pager = 1; commit_pager_choice(); status = p->fn(argc, argv, prefix); exit_browser(status); if (status) return status & 0xff; if (fstat(fileno(stdout), &st)) return 0; if (S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode)) return 0; if (fflush(stdout)) die("write failure on standard output: %s", strerror(errno)); if (ferror(stdout)) die("unknown write failure on standard output"); if (fclose(stdout)) die("close failed on standard output: %s", strerror(errno)); return 0; }