1*cf5a6c84SAndroid Build Coastguard Worker /* w.c - shows logged in users 2*cf5a6c84SAndroid Build Coastguard Worker * 3*cf5a6c84SAndroid Build Coastguard Worker * Copyright 2012 Gaurang Shastri <[email protected]> 4*cf5a6c84SAndroid Build Coastguard Worker 5*cf5a6c84SAndroid Build Coastguard Worker USE_W(NEWTOY(w, NULL, TOYFLAG_USR|TOYFLAG_BIN)) 6*cf5a6c84SAndroid Build Coastguard Worker 7*cf5a6c84SAndroid Build Coastguard Worker config W 8*cf5a6c84SAndroid Build Coastguard Worker bool "w" 9*cf5a6c84SAndroid Build Coastguard Worker default y 10*cf5a6c84SAndroid Build Coastguard Worker help 11*cf5a6c84SAndroid Build Coastguard Worker usage: w 12*cf5a6c84SAndroid Build Coastguard Worker 13*cf5a6c84SAndroid Build Coastguard Worker Show who is logged on and since how long they logged in. 14*cf5a6c84SAndroid Build Coastguard Worker */ 15*cf5a6c84SAndroid Build Coastguard Worker 16*cf5a6c84SAndroid Build Coastguard Worker #include "toys.h" 17*cf5a6c84SAndroid Build Coastguard Worker w_main(void)18*cf5a6c84SAndroid Build Coastguard Workervoid w_main(void) 19*cf5a6c84SAndroid Build Coastguard Worker { 20*cf5a6c84SAndroid Build Coastguard Worker struct utmpx *x; 21*cf5a6c84SAndroid Build Coastguard Worker 22*cf5a6c84SAndroid Build Coastguard Worker xprintf("USER TTY LOGIN@ FROM"); 23*cf5a6c84SAndroid Build Coastguard Worker setutxent(); 24*cf5a6c84SAndroid Build Coastguard Worker while ((x=getutxent()) != NULL) { 25*cf5a6c84SAndroid Build Coastguard Worker if (x->ut_type==7) { 26*cf5a6c84SAndroid Build Coastguard Worker time_t tt = x->ut_tv.tv_sec; 27*cf5a6c84SAndroid Build Coastguard Worker 28*cf5a6c84SAndroid Build Coastguard Worker xprintf("\n%-9.8s%-9.8s %-4.24s (%-1.12s)", x->ut_user, x->ut_line, 29*cf5a6c84SAndroid Build Coastguard Worker ctime(&tt), x->ut_host); 30*cf5a6c84SAndroid Build Coastguard Worker } 31*cf5a6c84SAndroid Build Coastguard Worker } 32*cf5a6c84SAndroid Build Coastguard Worker xputc('\n'); 33*cf5a6c84SAndroid Build Coastguard Worker } 34