diff --git a/Process.h b/Process.h index 922afdd6..f7d1adf3 100644 --- a/Process.h +++ b/Process.h @@ -65,6 +65,9 @@ typedef enum ProcessField_ { #ifdef HAVE_TASKSTATS RCHAR, WCHAR, SYSCR, SYSCW, RBYTES, WBYTES, CNCLWB, IO_READ_RATE, IO_WRITE_RATE, IO_RATE, #endif + #ifdef HAVE_CGROUP + CGROUP, + #endif LAST_PROCESSFIELD } ProcessField; @@ -155,6 +158,9 @@ typedef struct Process_ { double io_rate_write_bps; unsigned long long io_rate_write_time; #endif + #ifdef HAVE_CGROUP + char* cgroup; + #endif } Process; diff --git a/ProcessList.c b/ProcessList.c index dfd5ce9f..a958055e 100644 --- a/ProcessList.c +++ b/ProcessList.c @@ -653,12 +653,12 @@ static bool ProcessList_processEntries(ProcessList* this, const char* dirname, P char** fields = String_split(trimmed, ':'); free(trimmed); - char* value = String_cat(fields[2], " "); + process->cgroup = strndup(fields[2] + 1, 10); String_freeArray(fields); - process->cgroup = strndup(value + 1, 10); - free(value); } fclose(status); + } else { + process->cgroup = strdup(""); } #endif