--- ./top/top.c.orig 2021-02-09 10:11:25.000000000 +0000 +++ ./top/top.c 2021-05-07 05:35:17.936501694 +0000 @@ -2504,7 +2504,7 @@ (sorry Linux, but you'll have to close it for us) */ if (!fp) { if (!(fp = fopen("/proc/stat", "r"))) - error_exit(fmtmk(N_fmt(FAIL_statopn_fmt), strerror(errno))); + return; /* note: we allocate one more CPU_t via totSLOT than 'cpus' so that a slot can hold tics representing the /proc/stat cpu summary */ Cpu_tics = alloc_c(totSLOT * sizeof(CPU_t)); @@ -4389,7 +4389,7 @@ tmptty.c_cc[VERASE] = *key_backspace; #ifdef TERMIOS_ONLY if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &tmptty)) - error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno))); + {} tcgetattr(STDIN_FILENO, &Tty_tweaked); #endif // lastly, a nearly raw mode for unsolicited single keystrokes @@ -4397,7 +4397,7 @@ tmptty.c_cc[VMIN] = 1; tmptty.c_cc[VTIME] = 0; if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &tmptty)) - error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno))); + {} tcgetattr(STDIN_FILENO, &Tty_raw); #ifndef OFF_STDIOLBF @@ -5969,7 +5969,7 @@ if (!Numa_node_tot) goto numa_nope; - if (CHKw(w, View_CPUNOD)) { + if (Cpu_tics && CHKw(w, View_CPUNOD)) { if (Numa_node_sel < 0) { // display the 1st /proc/stat line, then the nodes (if room) Msg_row += cpu_tics(&Cpu_tics[smp_num_cpus], N_txt(WORD_allcpus_txt), 1); @@ -6004,10 +6004,10 @@ } } else numa_nope: - if (CHKw(w, View_CPUSUM)) { + if (Cpu_tics && CHKw(w, View_CPUSUM)) { // display just the 1st /proc/stat line Msg_row += cpu_tics(&Cpu_tics[smp_num_cpus], N_txt(WORD_allcpus_txt), 1); - } else { + } else if (Cpu_tics) { // display each cpu's states separately, screen height permitting... if (w->rc.combine_cpus) { for (i = 0; i < Cpu_faux_tot; i++) {