Compare commits
2 Commits
2.41.2
...
LIBGTOP_2_
Author | SHA1 | Date | |
---|---|---|---|
|
e1d6e713fc | ||
|
1634698050 |
5
NEWS
5
NEWS
@@ -1,3 +1,8 @@
|
||||
24 May 2008: Overview of changes in 2.22.2
|
||||
==========================================
|
||||
* linux:
|
||||
- fixed parsing of huge /proc/stat.
|
||||
|
||||
04 April 2008: Overview of changes in 2.22.1
|
||||
============================================
|
||||
* Fixed compilation/dist for !linux.
|
||||
|
@@ -4,7 +4,7 @@ dnl
|
||||
|
||||
m4_define([libgtop_major_version], [2])
|
||||
m4_define([libgtop_minor_version], [22])
|
||||
m4_define([libgtop_micro_version], [1])
|
||||
m4_define([libgtop_micro_version], [2])
|
||||
m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version])
|
||||
|
||||
dnl increment if the interface has additions, changes, removals.
|
||||
|
@@ -119,20 +119,27 @@ file_to_buffer(glibtop *server, char *buffer, size_t bufsiz, const char *filenam
|
||||
static unsigned long
|
||||
read_boot_time(glibtop *server)
|
||||
{
|
||||
char buffer[BUFSIZ];
|
||||
char *btime;
|
||||
char* line = NULL;
|
||||
size_t size = 0;
|
||||
FILE* stat;
|
||||
unsigned long btime = 0;
|
||||
|
||||
file_to_buffer(server, buffer, sizeof buffer, "/proc/stat");
|
||||
|
||||
btime = strstr(buffer, "btime");
|
||||
|
||||
if (!btime) {
|
||||
glibtop_warn_io_r(server, "cannot find btime in /proc/stat");
|
||||
return 0UL;
|
||||
if (!(stat = fopen("/proc/stat", "r"))) {
|
||||
glibtop_error_io_r(server, "fopen(\"/proc/stat\")");
|
||||
goto out;
|
||||
}
|
||||
|
||||
btime = skip_token(btime);
|
||||
return strtoul(btime, NULL, 10);
|
||||
while (getline(&line, &size, stat) != -1) {
|
||||
if (!strncmp(line, "btime", 5)) {
|
||||
btime = strtoul(skip_token(line), NULL, 10);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
free(line);
|
||||
fclose(stat);
|
||||
out:
|
||||
return btime;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user