[Toybox] [PATCH] uptime.c: Add user count and format according to upstream

Elie De Brauwer eliedebrauwer at gmail.com
Sun Oct 13 06:47:55 PDT 2013


On Sun, Oct 13, 2013 at 1:14 AM, Jeroen van Rijn <jvrnix at gmail.com> 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 <eliedebrauwer at gmail.com>
> CC: Luis Felipe Strano Moraes <lfelipe at profusion.mobi>
> Signed-off-by: Jeroen van Rijn <jvrnix at gmail.com>
> ---
>  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 <eliedebrauwer at gmail.com>
> + * Copyright 2012 Luis Felipe Strano Moraes <lfelipe at profusion.mobi>
> + *    (code borrowed from toys/posix/who.c for user count)
> + * Copyright 2013 Jeroen van Rijn <jvrnix at gmail.com>
> +
>
>  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

 1381672075.0


More information about the Toybox mailing list