sg_get_user_stats(3) sg_get_user_stats(3)

sg_get_user_stats, sg_get_user_stats_r, sg_free_user_stats - get the current logged in users

#include <statgrab.h>


sg_user_stats *sg_get_user_stats
(size_t *entries);


sg_user_stats *sg_get_user_stats_r
(size_t *entries);


sg_error sg_free_user_stats
(sg_user_stats *data);

The user statistics module delivers some information about logged on users. Each logon is treated separately. Both statistic get functions, sg_get_user_stats() and sg_get_user_stats_r(), return a vector of sg_user_stats with entries elements.

API Shortcut

function returns data owner
sg_get_user_stats sg_user_stats * libstatgrab (thread local)
sg_get_user_stats_r sg_user_stats * caller

The sg_user_stats vector received from sg_get_user_stats_r() must be freed using sg_free_user_stats() when not needed any more. The caller is responsible for doing it.

The structure returned is of type sg_user_stats.

typedef struct {
        char *login_name;
        char *record_id;
        size_t record_id_size;
        char *device;
        char *hostname;
        pid_t pid;
        time_t login_time;
        time_t systime;
} sg_user_stats;
The username which was used to log in
Record identifier of host database containing login information (not necessarily 0-terminated)
Size of the record identifier
Device name (eg. "pts/0") of the tty assigned to the login session
(remote) Hostname from where the user is logged on, eg. "infoterm7.some.kind.of.domain.local", "localhost", "10.42.17.4" or ":0.0" (in case it's a local logon via new xterm)
Process identifier of the process which made the entry to the logged on users database
Timestamp (time in seconds since epoch) when the user logged on
The timestamp when the above stats where collected in seconds since epoch

statgrab(3)

https://libstatgrab.org/

2019-03-08 libstatgrab