diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2017-07-10 20:57:34 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2017-07-10 20:57:34 -0300 |
commit | e940aecfb9c51371d412230431339d2d124eeb81 (patch) | |
tree | 785e434425401957a10f11bdbdc37801bbec87e3 | |
parent | 1a178ad5816f954a73ccf2fec2c41a5d3cab2cae (diff) |
Add "no perm" status when other fields fail due to lack of permission.
Thanks @Sworddragon for the heads up.
See #88.
-rw-r--r-- | Process.c | 5 | ||||
-rw-r--r-- | linux/LinuxProcessList.c | 12 |
2 files changed, 15 insertions, 2 deletions
@@ -262,7 +262,10 @@ void Process_colorNumber(RichString* str, unsigned long long number, bool colori 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); RichString_appendn(str, largeNumberColor, buffer, 5); RichString_appendn(str, processMegabytesColor, buffer+5, 3); diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c index 280191c8..41d3b787 100644 --- a/linux/LinuxProcessList.c +++ b/linux/LinuxProcessList.c @@ -353,6 +353,15 @@ static void LinuxProcessList_readIoFile(LinuxProcess* process, const char* dirna if (fd == -1) { process->io_rate_read_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; } @@ -529,8 +538,9 @@ static void LinuxProcessList_readOomData(LinuxProcess* process, const char* dirn char filename[MAX_NAME+1]; snprintf(filename, MAX_NAME, "%s/%s/oom_score", dirname, name); FILE* file = fopen(filename, "r"); - if (!file) + if (!file) { return; + } char buffer[PROC_LINE_LENGTH + 1]; if (fgets(buffer, PROC_LINE_LENGTH, file)) { unsigned int oom; |