int main(int argc, char *argv[]) { pid_t nb_pid; struct winsize ws; parse_options(argc,argv); // ws.ws_row, ws.ws_col ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws); if (flag_monitor || flag_monitor_continous) { if ((mainwin = initscr()) == NULL ) { fprintf(stderr, "Error initialising ncurses.\n"); exit(EXIT_FAILURE); } if (!flag_throughput) { flag_throughput = 1; throughput_wait_secs = 1; } set_hlist_size(throughput_wait_secs); signal(SIGINT, int_handler); do { monitor_processes(&nb_pid); refresh(); if(flag_monitor_continous && !nb_pid) { usleep(1000000 * throughput_wait_secs); } } while ((flag_monitor && nb_pid) || flag_monitor_continous); endwin(); } else { set_hlist_size(throughput_wait_secs); monitor_processes(&nb_pid); } return 0; }
int main(int argc, char *argv[]) { pid_t nb_pid; struct winsize ws; wordexp_t env_wordexp; char *env_progress_args; char *env_progress_args_full; env_progress_args = getenv("PROGRESS_ARGS"); if (env_progress_args) { int full_len; // prefix with (real) argv[0] // argv[0] + ' ' + env_progress_args + '\0' full_len = strlen(argv[0]) + 1 + strlen(env_progress_args) + 1; env_progress_args_full = malloc(full_len * sizeof(char)); sprintf(env_progress_args_full, "%s %s", argv[0], env_progress_args); if (wordexp(env_progress_args_full, &env_wordexp, 0)) { fprintf(stderr,"Unable to parse PROGRESS_ARGS environment variable.\n"); exit(EXIT_FAILURE); } parse_options(env_wordexp.we_wordc,env_wordexp.we_wordv); } parse_options(argc,argv); // ws.ws_row, ws.ws_col ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws); if (flag_monitor || flag_monitor_continuous) { if ((mainwin = initscr()) == NULL ) { fprintf(stderr, "Error initialising ncurses.\n"); exit(EXIT_FAILURE); } if (!flag_throughput) { flag_throughput = 1; throughput_wait_secs = 1; } set_hlist_size(throughput_wait_secs); signal(SIGINT, int_handler); do { monitor_processes(&nb_pid); refresh(); if(flag_monitor_continuous && !nb_pid) { usleep(1000000 * throughput_wait_secs); } } while ((flag_monitor && nb_pid) || flag_monitor_continuous); endwin(); } else { set_hlist_size(throughput_wait_secs); monitor_processes(&nb_pid); } return 0; }