On Sun, Oct 13, 2013 at 1:14 AM, Jeroen van Rijn <[email protected]> wrote: > I noticed the user count was missing and added this, borrowing a bit > of code from toys/posix/who.c. The original toy also omitted commas > between the load values, as compared to upstream.
Jeroen, Patch look fine to me, except the excessive header spam perhaps ;). gr E. > Output now includes user count and follows the same format: > $ ./toybox uptime > 00:49:04 up 3 days, 8:00, 2 users, load average: 0,07, 0,15, 0,34 > $ uptime > 00:49:07 up 3 days, 8:00, 2 users, load average: 0,06, 0,15, 0,34 > > CC: Elie De Brauwer <[email protected]> > CC: Luis Felipe Strano Moraes <[email protected]> > Signed-off-by: Jeroen van Rijn <[email protected]> > --- > toys/other/uptime.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/toys/other/uptime.c b/toys/other/uptime.c > index f4ce5e4..d20af53 100644 > --- a/toys/other/uptime.c > +++ b/toys/other/uptime.c > @@ -1,6 +1,10 @@ > /* uptime.c - Tell how long the system has been running. > * > * Copyright 2012 Elie De Brauwer <[email protected]> > + * Copyright 2012 Luis Felipe Strano Moraes <[email protected]> > + * (code borrowed from toys/posix/who.c for user count) > + * Copyright 2013 Jeroen van Rijn <[email protected]> > + > > USE_UPTIME(NEWTOY(uptime, NULL, TOYFLAG_USR|TOYFLAG_BIN)) > > @@ -22,11 +26,20 @@ void uptime_main(void) > time_t tmptime; > struct tm * now; > unsigned int days, hours, minutes; > + struct utmpx *entry; > + int users = 0; > > // Obtain the data we need. > sysinfo(&info); > time(&tmptime); > now = localtime(&tmptime); > + // Obtain info about logged on users > + setutxent(); > + while ((entry = getutxent())) > + { > + if (entry->ut_type == USER_PROCESS) users++; > + } > + endutxent(); > > // Time > xprintf(" %02d:%02d:%02d up ", now->tm_hour, now->tm_min, now->tm_sec); > @@ -39,7 +52,7 @@ void uptime_main(void) > if (days) xprintf("%d day%s, ", days, (days!=1)?"s":""); > if (hours) xprintf("%2d:%02d, ", hours, minutes); > else printf("%d min, ", minutes); > - > - printf(" load average: %.02f %.02f %.02f\n", info.loads[0]/65536.0, > + printf(" %d user%s, ", users, (users!=1)?"s":""); > + printf(" load average: %.02f, %.02f, %.02f\n", info.loads[0]/65536.0, > info.loads[1]/65536.0, info.loads[2]/65536.0); > } > -- > 1.8.1.2 > -- Elie De Brauwer _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
