aboutsummaryrefslogtreecommitdiff
path: root/toys/w.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2012-07-18 20:21:50 -0500
committerRob Landley <rob@landley.net>2012-07-18 20:21:50 -0500
commitb67a8ceaf110fe0bdad6c8da78568662cc50e5bb (patch)
tree23e26df7a25da5cb594b40e60d1c2c174e5d9fa1 /toys/w.c
parenta727b516ef77251f3736ed8368d9bb381664aaa5 (diff)
downloadtoybox-b67a8ceaf110fe0bdad6c8da78568662cc50e5bb.tar.gz
Add w command by Gaurang Shastri.
Diffstat (limited to 'toys/w.c')
-rw-r--r--toys/w.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/toys/w.c b/toys/w.c
new file mode 100644
index 00000000..7e5a2964
--- /dev/null
+++ b/toys/w.c
@@ -0,0 +1,47 @@
+/* vi: set sw=4 ts=4:
+ *
+ * w.c - shows logged in users
+ *
+ * Copyright 2012 Gaurang Shastri <gmshastri@gmail.com>
+ *
+ * Not in SUSv4.
+
+USE_W(NEWTOY(w, NULL, TOYFLAG_USR|TOYFLAG_BIN))
+
+config W
+ bool "w"
+ default y
+ help
+ usage: w
+
+ Show who is logged on and since how long they logged in.
+
+*/
+
+#include "toys.h"
+
+void w_main(void)
+{
+ struct utmpx *x;
+ time_t time_val;
+ xprintf("USER TTY LOGIN@ FROM");
+ setutxent();
+ x=getutxent();
+ while(x!=NULL) {
+ if(x->ut_type==7) {
+ xprintf("\n");
+ xprintf("%-9.8s",x->ut_user);
+ xprintf("%-9.8s",x->ut_line);
+
+ xprintf(" ");
+ time_val = (x->ut_tv.tv_sec);
+ xprintf("%-4.24s",ctime(&time_val));
+
+ xprintf(" (");
+ xprintf("%-1.12s",x->ut_host);
+ xprintf(")");
+ }
+ x=getutxent();
+ }
+ xprintf("\n");
+}