summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2017-07-10 20:57:34 -0300
committerHisham Muhammad <hisham@gobolinux.org>2017-07-10 20:57:34 -0300
commite940aecfb9c51371d412230431339d2d124eeb81 (patch)
tree785e434425401957a10f11bdbdc37801bbec87e3
parent1a178ad5816f954a73ccf2fec2c41a5d3cab2cae (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.c5
-rw-r--r--linux/LinuxProcessList.c12
2 files changed, 15 insertions, 2 deletions
diff --git a/Process.c b/Process.c
index fea5533c..f31cb705 100644
--- a/Process.c
+++ b/Process.c
@@ -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;

© 2014-2024 Faster IT GmbH | imprint | privacy policy