diff options
Diffstat (limited to 'bin/ps')
-rw-r--r-- | bin/ps/fmt.c | 1 | ||||
-rw-r--r-- | bin/ps/keyword.c | 2 | ||||
-rw-r--r-- | bin/ps/nlist.c | 1 | ||||
-rw-r--r-- | bin/ps/print.c | 23 | ||||
-rw-r--r-- | bin/ps/ps.c | 1 |
5 files changed, 24 insertions, 4 deletions
diff --git a/bin/ps/fmt.c b/bin/ps/fmt.c index 4477284..fe2101d 100644 --- a/bin/ps/fmt.c +++ b/bin/ps/fmt.c @@ -36,6 +36,7 @@ static char sccsid[] = "@(#)fmt.c 8.4 (Berkeley) 4/15/94"; #endif #endif + #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index bb79d63..2d8718a 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -84,7 +84,7 @@ static VAR var[] = { {"cpu", "CPU", NULL, 0, kvar, NULL, 3, KOFF(ki_estcpu), UINT, "d", 0}, {"cputime", "", "time", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, - {"etime", "ELAPSED", NULL, USER, elapsed, NULL, 9, 0, CHAR, NULL, 0}, + {"etime", "ELAPSED", NULL, USER, elapsed, NULL, 12, 0, CHAR, NULL, 0}, {"f", "F", NULL, 0, kvar, NULL, 7, KOFF(ki_flag), INT, "x", 0}, {"flags", "", "f", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, {"ignored", "", "sigignore", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, diff --git a/bin/ps/nlist.c b/bin/ps/nlist.c index 02cd1c5..e6bc85f 100644 --- a/bin/ps/nlist.c +++ b/bin/ps/nlist.c @@ -36,6 +36,7 @@ static char sccsid[] = "@(#)nlist.c 8.4 (Berkeley) 4/2/94"; #endif /* not lint */ #endif + #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); diff --git a/bin/ps/print.c b/bin/ps/print.c index 6b3489b..69d33ba 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -36,6 +36,7 @@ static char sccsid[] = "@(#)print.c 8.6 (Berkeley) 4/16/94"; #endif /* not lint */ #endif + #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); @@ -539,14 +540,30 @@ void elapsed(KINFO *k, VARENT *ve) { VAR *v; - time_t secs; + time_t days, hours, mins, secs; char obuff[128]; v = ve->var; secs = now - k->ki_p->ki_start.tv_sec; - (void)snprintf(obuff, sizeof(obuff), "%3ld:%02ld", (long)secs/60, - (long)secs%60); + days = secs/(24*60*60); + secs %= (24*60*60); + hours = secs/(60*60); + secs %= (60*60); + mins = secs/60; + secs %= 60; + if (days != 0) { + (void)snprintf(obuff, sizeof(obuff), "%3ld-%02ld:%02ld:%02ld", + (long)days, (long)hours, (long)mins, (long)secs); + } + else if (hours != 0) { + (void)snprintf(obuff, sizeof(obuff), "%02ld:%02ld:%02ld", + (long)hours, (long)mins, (long)secs); + } + else { + (void)snprintf(obuff, sizeof(obuff), "%02ld:%02ld", + (long)mins, (long)secs); + } (void)printf("%*s", v->width, obuff); } diff --git a/bin/ps/ps.c b/bin/ps/ps.c index c62d1dc..4896c4b 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -42,6 +42,7 @@ static const char copyright[] = static char sccsid[] = "@(#)ps.c 8.4 (Berkeley) 4/2/94"; #endif /* not lint */ #endif + #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); |