summaryrefslogtreecommitdiffstats
path: root/bin/ps
diff options
context:
space:
mode:
authorcharnier <charnier@FreeBSD.org>2003-02-05 13:18:17 +0000
committercharnier <charnier@FreeBSD.org>2003-02-05 13:18:17 +0000
commit923572be6afadb10e8cf16e10a22dbba5bc25f0d (patch)
treee62378a1f63b908b0377bb1fbc3da836b7f1e838 /bin/ps
parent712128a7b6ee03618dfca169550cd20d72c27394 (diff)
downloadFreeBSD-src-923572be6afadb10e8cf16e10a22dbba5bc25f0d.zip
FreeBSD-src-923572be6afadb10e8cf16e10a22dbba5bc25f0d.tar.gz
Display elapsed time (-o etime) using [[dd-]hh:]mm:ss, which according to
Solaris man page is the POSIX way. Reviewed by: jmallett
Diffstat (limited to 'bin/ps')
-rw-r--r--bin/ps/fmt.c1
-rw-r--r--bin/ps/keyword.c2
-rw-r--r--bin/ps/nlist.c1
-rw-r--r--bin/ps/print.c23
-rw-r--r--bin/ps/ps.c1
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$");
OpenPOWER on IntegriCloud