summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMartin Baulig <martin@home-of-linux.org>1999-03-31 16:53:05 +0000
committerMartin Baulig <martin@src.gnome.org>1999-03-31 16:53:05 +0000
commitede4594dd9a4e16b35723c9d2fc51c4fdfa74e97 (patch)
tree33792087ca950c1e51e5ad3d2ce1c9d090e8c5ac /examples
parent3a7f02352a458c592ae23ed93228636535af1831 (diff)
downloadlibgtop-ede4594dd9a4e16b35723c9d2fc51c4fdfa74e97.tar.gz
Added some new features.
1999-03-30 Martin Baulig <martin@home-of-linux.org> Added some new features. * (glibtop_uptime): Added `boot_time', boot time in seconds since the epoch. * (glibtop_proc_state): Changed `state' from char to unsigned. `uid' and `gid' are effective uid and gid; added comment. Added `ruid' and `rgid' for guaranteed-to-be-correct real uid/gid. For SMP systems: added `has_cpu', `processor' and `last_processor'. * (glibtop_proc_uid): Added suid, sgid, fsuid, fsgid, ngroups, groups. * (glibtop_proc_segment): Added start_data, end_data, start_brk, end_brk, start_mmap, arg_start, arg_end, env_start, env_end. * include/glibtop/procstate.h: Define some constants for the `state' field of glibtop_proc_state. * include/glibtop/prockernel.h: Define some constands for the `k_flags' field of glibtop_proc_kernel.
Diffstat (limited to 'examples')
-rw-r--r--examples/first.c142
-rw-r--r--examples/second.c46
2 files changed, 152 insertions, 36 deletions
diff --git a/examples/first.c b/examples/first.c
index 474e4bd4..b9268726 100644
--- a/examples/first.c
+++ b/examples/first.c
@@ -116,9 +116,10 @@ main (int argc, char *argv [])
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_uptime (&data.uptime);
- printf ("Uptime (0x%08lx): %f, %f\n",
+ printf ("Uptime (0x%08lx): %f, %f, %lu\n",
(unsigned long) data.uptime.flags,
- data.uptime.uptime, data.uptime.idletime);
+ data.uptime.uptime, data.uptime.idletime,
+ (unsigned long) data.uptime.boot_time);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_loadavg (&data.loadavg);
@@ -242,24 +243,42 @@ main (int argc, char *argv [])
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_state (&data.proc_state, pid);
- printf ("Proc_State PID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
- (int) pid, (unsigned long) data.proc_state.flags,
+ printf ("Proc_State PID %5d (0x%08lx): '%s', %u - "
+ "%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
+ (unsigned long) data.proc_state.flags,
data.proc_state.cmd, data.proc_state.state,
- (unsigned long) data.proc_state.uid,
- (unsigned long) data.proc_state.gid);
+ data.proc_state.uid, data.proc_state.gid,
+ data.proc_state.ruid, data.proc_state.rgid,
+ data.proc_state.has_cpu, data.proc_state.processor,
+ data.proc_state.last_processor);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_uid (&data.proc_uid, pid);
printf ("Proc_Uid PID %5d (0x%08lx): "
- "%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
- (unsigned long) data.proc_uid.flags,
+ "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
+ (int) pid, (unsigned long) data.proc_uid.flags,
data.proc_uid.uid, data.proc_uid.euid,
data.proc_uid.gid, data.proc_uid.egid,
+ data.proc_uid.suid, data.proc_uid.sgid,
+ data.proc_uid.fsuid, data.proc_uid.fsgid,
data.proc_uid.pid, data.proc_uid.ppid,
data.proc_uid.pgrp, data.proc_uid.session,
data.proc_uid.tty, data.proc_uid.tpgid,
- data.proc_uid.priority, data.proc_uid.nice);
+ data.proc_uid.priority, data.proc_uid.nice,
+ data.proc_uid.ngroups);
+
+ if (data.proc_uid.ngroups) {
+ for (i = 0; i < data.proc_uid.ngroups; i++) {
+ if (i)
+ printf (" %d", data.proc_uid.groups [i]);
+ else
+ printf ("(%d", data.proc_uid.groups [i]);
+ }
+ printf (")");
+ }
+
+ printf ("\n");
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_mem (&data.proc_mem, pid);
@@ -278,7 +297,9 @@ main (int argc, char *argv [])
glibtop_get_proc_segment (&data.proc_segment, pid);
printf ("Proc_Segment PID %5d (0x%08lx): "
- "%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx\n", (int) pid,
+ "%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
+ "0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
+ "0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
(unsigned long) data.proc_segment.flags,
(unsigned long) data.proc_segment.text_rss,
(unsigned long) data.proc_segment.shlib_rss,
@@ -287,7 +308,16 @@ main (int argc, char *argv [])
(unsigned long) data.proc_segment.dirty_size,
(unsigned long) data.proc_segment.start_code,
(unsigned long) data.proc_segment.end_code,
- (unsigned long) data.proc_segment.start_stack);
+ (unsigned long) data.proc_segment.start_data,
+ (unsigned long) data.proc_segment.end_data,
+ (unsigned long) data.proc_segment.start_brk,
+ (unsigned long) data.proc_segment.end_brk,
+ (unsigned long) data.proc_segment.start_stack,
+ (unsigned long) data.proc_segment.start_mmap,
+ (unsigned long) data.proc_segment.arg_start,
+ (unsigned long) data.proc_segment.arg_end,
+ (unsigned long) data.proc_segment.env_start,
+ (unsigned long) data.proc_segment.env_end);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_time (&data.proc_time, pid);
@@ -357,24 +387,42 @@ main (int argc, char *argv [])
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_state (&data.proc_state, ppid);
- printf ("Proc_State PPID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
- (int) ppid, (unsigned long) data.proc_state.flags,
+ printf ("Proc_State PPID %5d (0x%08lx): '%s', %u - "
+ "%u, %u, %u, %u - %u, %u, %u\n", (int) ppid,
+ (unsigned long) data.proc_state.flags,
data.proc_state.cmd, data.proc_state.state,
- (unsigned long) data.proc_state.uid,
- (unsigned long) data.proc_state.gid);
+ data.proc_state.uid, data.proc_state.gid,
+ data.proc_state.ruid, data.proc_state.rgid,
+ data.proc_state.has_cpu, data.proc_state.processor,
+ data.proc_state.last_processor);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_uid (&data.proc_uid, ppid);
printf ("Proc_Uid PPID %5d (0x%08lx): "
- "%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) ppid,
- (unsigned long) data.proc_uid.flags,
+ "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
+ (int) ppid, (unsigned long) data.proc_uid.flags,
data.proc_uid.uid, data.proc_uid.euid,
data.proc_uid.gid, data.proc_uid.egid,
+ data.proc_uid.suid, data.proc_uid.sgid,
+ data.proc_uid.fsuid, data.proc_uid.fsgid,
data.proc_uid.pid, data.proc_uid.ppid,
data.proc_uid.pgrp, data.proc_uid.session,
data.proc_uid.tty, data.proc_uid.tpgid,
- data.proc_uid.priority, data.proc_uid.nice);
+ data.proc_uid.priority, data.proc_uid.nice,
+ data.proc_uid.ngroups);
+
+ if (data.proc_uid.ngroups) {
+ for (i = 0; i < data.proc_uid.ngroups; i++) {
+ if (i)
+ printf (" %d", data.proc_uid.groups [i]);
+ else
+ printf (" (%d", data.proc_uid.groups [i]);
+ }
+ printf (")");
+ }
+
+ printf ("\n");
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_mem (&data.proc_mem, ppid);
@@ -393,7 +441,9 @@ main (int argc, char *argv [])
glibtop_get_proc_segment (&data.proc_segment, ppid);
printf ("Proc_Segment PPID %5d (0x%08lx): "
- "%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx\n", (int) ppid,
+ "%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
+ "0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
+ "0x%lx 0x%lx 0x%lx 0x%lx\n", (int) ppid,
(unsigned long) data.proc_segment.flags,
(unsigned long) data.proc_segment.text_rss,
(unsigned long) data.proc_segment.shlib_rss,
@@ -402,7 +452,16 @@ main (int argc, char *argv [])
(unsigned long) data.proc_segment.dirty_size,
(unsigned long) data.proc_segment.start_code,
(unsigned long) data.proc_segment.end_code,
- (unsigned long) data.proc_segment.start_stack);
+ (unsigned long) data.proc_segment.start_data,
+ (unsigned long) data.proc_segment.end_data,
+ (unsigned long) data.proc_segment.start_brk,
+ (unsigned long) data.proc_segment.end_brk,
+ (unsigned long) data.proc_segment.start_stack,
+ (unsigned long) data.proc_segment.start_mmap,
+ (unsigned long) data.proc_segment.arg_start,
+ (unsigned long) data.proc_segment.arg_end,
+ (unsigned long) data.proc_segment.env_start,
+ (unsigned long) data.proc_segment.env_end);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_time (&data.proc_time, ppid);
@@ -472,24 +531,42 @@ main (int argc, char *argv [])
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_state (&data.proc_state, 1);
- printf ("Proc_State INIT %5d (0x%08lx): '%s', %c, %lu, %lu\n", 1,
+ printf ("Proc_State INIT %5d (0x%08lx): '%s', %u - "
+ "%u, %u, %u, %u - %u, %u, %u\n", 1,
(unsigned long) data.proc_state.flags,
data.proc_state.cmd, data.proc_state.state,
- (unsigned long) data.proc_state.uid,
- (unsigned long) data.proc_state.gid);
+ data.proc_state.uid, data.proc_state.gid,
+ data.proc_state.ruid, data.proc_state.rgid,
+ data.proc_state.has_cpu, data.proc_state.processor,
+ data.proc_state.last_processor);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_uid (&data.proc_uid, 1);
printf ("Proc_Uid INIT %5d (0x%08lx): "
- "%d %d %d %d %d %d %d %d %d %d %d %d\n", 1,
+ "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d", 1,
(unsigned long) data.proc_uid.flags,
data.proc_uid.uid, data.proc_uid.euid,
data.proc_uid.gid, data.proc_uid.egid,
+ data.proc_uid.suid, data.proc_uid.sgid,
+ data.proc_uid.fsuid, data.proc_uid.fsgid,
data.proc_uid.pid, data.proc_uid.ppid,
data.proc_uid.pgrp, data.proc_uid.session,
data.proc_uid.tty, data.proc_uid.tpgid,
- data.proc_uid.priority, data.proc_uid.nice);
+ data.proc_uid.priority, data.proc_uid.nice,
+ data.proc_uid.ngroups);
+
+ if (data.proc_uid.ngroups) {
+ for (i = 0; i < data.proc_uid.ngroups; i++) {
+ if (i)
+ printf (" %d", data.proc_uid.groups [i]);
+ else
+ printf (" (%d", data.proc_uid.groups [i]);
+ }
+ printf (")");
+ }
+
+ printf ("\n");
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_mem (&data.proc_mem, 1);
@@ -508,7 +585,9 @@ main (int argc, char *argv [])
glibtop_get_proc_segment (&data.proc_segment, 1);
printf ("Proc_Segment INIT %5d (0x%08lx): "
- "%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx\n", 1,
+ "%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
+ "0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
+ "0x%lx 0x%lx 0x%lx 0x%lx\n", 1,
(unsigned long) data.proc_segment.flags,
(unsigned long) data.proc_segment.text_rss,
(unsigned long) data.proc_segment.shlib_rss,
@@ -517,7 +596,16 @@ main (int argc, char *argv [])
(unsigned long) data.proc_segment.dirty_size,
(unsigned long) data.proc_segment.start_code,
(unsigned long) data.proc_segment.end_code,
- (unsigned long) data.proc_segment.start_stack);
+ (unsigned long) data.proc_segment.start_data,
+ (unsigned long) data.proc_segment.end_data,
+ (unsigned long) data.proc_segment.start_brk,
+ (unsigned long) data.proc_segment.end_brk,
+ (unsigned long) data.proc_segment.start_stack,
+ (unsigned long) data.proc_segment.start_mmap,
+ (unsigned long) data.proc_segment.arg_start,
+ (unsigned long) data.proc_segment.arg_end,
+ (unsigned long) data.proc_segment.env_start,
+ (unsigned long) data.proc_segment.env_end);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_time (&data.proc_time, 1);
diff --git a/examples/second.c b/examples/second.c
index 6767ba17..6fb7b809 100644
--- a/examples/second.c
+++ b/examples/second.c
@@ -53,25 +53,42 @@ output (pid_t pid)
glibtop_get_proc_state (&data.proc_state, pid);
- printf ("Proc_State PID %5d (0x%08lx): "
- "'%s', %c, %lu, %lu\n", (int) pid,
+ printf ("Proc_State PID %5d (0x%08lx): '%s', %u - "
+ "%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
(unsigned long) data.proc_state.flags,
data.proc_state.cmd, data.proc_state.state,
- (unsigned long) data.proc_state.uid,
- (unsigned long) data.proc_state.gid);
+ data.proc_state.uid, data.proc_state.gid,
+ data.proc_state.ruid, data.proc_state.rgid,
+ data.proc_state.has_cpu, data.proc_state.processor,
+ data.proc_state.last_processor);
glibtop_get_proc_uid (&data.proc_uid, pid);
printf ("Proc_Uid PID %5d (0x%08lx): "
- "%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
- (unsigned long) data.proc_uid.flags,
+ "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
+ (int) pid, (unsigned long) data.proc_uid.flags,
data.proc_uid.uid, data.proc_uid.euid,
data.proc_uid.gid, data.proc_uid.egid,
+ data.proc_uid.suid, data.proc_uid.sgid,
+ data.proc_uid.fsuid, data.proc_uid.fsgid,
data.proc_uid.pid, data.proc_uid.ppid,
data.proc_uid.pgrp, data.proc_uid.session,
data.proc_uid.tty, data.proc_uid.tpgid,
- data.proc_uid.priority, data.proc_uid.nice);
+ data.proc_uid.priority, data.proc_uid.nice,
+ data.proc_uid.ngroups);
+ if (data.proc_uid.ngroups) {
+ for (i = 0; i < data.proc_uid.ngroups; i++) {
+ if (i)
+ printf (" %d", data.proc_uid.groups [i]);
+ else
+ printf (" (%d", data.proc_uid.groups [i]);
+ }
+ printf (")");
+ }
+
+ printf ("\n");
+
glibtop_get_proc_mem (&data.proc_mem, pid);
printf ("Proc_Mem PID %5d (0x%08lx): "
@@ -87,7 +104,9 @@ output (pid_t pid)
glibtop_get_proc_segment (&data.proc_segment, pid);
printf ("Proc_Segment PID %5d (0x%08lx): "
- "%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx\n", (int) pid,
+ "%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
+ "0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
+ "0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
(unsigned long) data.proc_segment.flags,
(unsigned long) data.proc_segment.text_rss,
(unsigned long) data.proc_segment.shlib_rss,
@@ -96,7 +115,16 @@ output (pid_t pid)
(unsigned long) data.proc_segment.dirty_size,
(unsigned long) data.proc_segment.start_code,
(unsigned long) data.proc_segment.end_code,
- (unsigned long) data.proc_segment.start_stack);
+ (unsigned long) data.proc_segment.start_data,
+ (unsigned long) data.proc_segment.end_data,
+ (unsigned long) data.proc_segment.start_brk,
+ (unsigned long) data.proc_segment.end_brk,
+ (unsigned long) data.proc_segment.start_stack,
+ (unsigned long) data.proc_segment.start_mmap,
+ (unsigned long) data.proc_segment.arg_start,
+ (unsigned long) data.proc_segment.arg_end,
+ (unsigned long) data.proc_segment.env_start,
+ (unsigned long) data.proc_segment.env_end);
glibtop_get_proc_time (&data.proc_time, pid);