mirror of https://github.com/xzeldon/htop.git
Add "no perm" status when other fields fail due to lack of permission.
Thanks @Sworddragon for the heads up. See #88.
This commit is contained in:
parent
1a178ad581
commit
e940aecfb9
|
@ -262,7 +262,10 @@ void Process_colorNumber(RichString* str, unsigned long long number, bool colori
|
||||||
processShadowColor = CRT_colors[PROCESS];
|
processShadowColor = CRT_colors[PROCESS];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (number > 10000000000) {
|
if ((long long) number == -1LL) {
|
||||||
|
int len = snprintf(buffer, 13, " no perm ");
|
||||||
|
RichString_appendn(str, CRT_colors[PROCESS_SHADOW], buffer, len);
|
||||||
|
} else if (number > 10000000000) {
|
||||||
snprintf(buffer, 13, "%11lld ", number / 1000);
|
snprintf(buffer, 13, "%11lld ", number / 1000);
|
||||||
RichString_appendn(str, largeNumberColor, buffer, 5);
|
RichString_appendn(str, largeNumberColor, buffer, 5);
|
||||||
RichString_appendn(str, processMegabytesColor, buffer+5, 3);
|
RichString_appendn(str, processMegabytesColor, buffer+5, 3);
|
||||||
|
|
|
@ -353,6 +353,15 @@ static void LinuxProcessList_readIoFile(LinuxProcess* process, const char* dirna
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
process->io_rate_read_bps = -1;
|
process->io_rate_read_bps = -1;
|
||||||
process->io_rate_write_bps = -1;
|
process->io_rate_write_bps = -1;
|
||||||
|
process->io_rchar = -1LL;
|
||||||
|
process->io_wchar = -1LL;
|
||||||
|
process->io_syscr = -1LL;
|
||||||
|
process->io_syscw = -1LL;
|
||||||
|
process->io_read_bytes = -1LL;
|
||||||
|
process->io_write_bytes = -1LL;
|
||||||
|
process->io_cancelled_write_bytes = -1LL;
|
||||||
|
process->io_rate_read_time = -1LL;
|
||||||
|
process->io_rate_write_time = -1LL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -529,8 +538,9 @@ static void LinuxProcessList_readOomData(LinuxProcess* process, const char* dirn
|
||||||
char filename[MAX_NAME+1];
|
char filename[MAX_NAME+1];
|
||||||
snprintf(filename, MAX_NAME, "%s/%s/oom_score", dirname, name);
|
snprintf(filename, MAX_NAME, "%s/%s/oom_score", dirname, name);
|
||||||
FILE* file = fopen(filename, "r");
|
FILE* file = fopen(filename, "r");
|
||||||
if (!file)
|
if (!file) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
char buffer[PROC_LINE_LENGTH + 1];
|
char buffer[PROC_LINE_LENGTH + 1];
|
||||||
if (fgets(buffer, PROC_LINE_LENGTH, file)) {
|
if (fgets(buffer, PROC_LINE_LENGTH, file)) {
|
||||||
unsigned int oom;
|
unsigned int oom;
|
||||||
|
|
Loading…
Reference in New Issue