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;
- login_name
- The username which was used to log in
- record_id
- Record identifier of host database containing login information (not
necessarily 0-terminated)
- record_id_size
- Size of the record identifier
- device
- Device name (eg. "pts/0") of the tty assigned to the login
session
- hostname
- (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)
- pid
- Process identifier of the process which made the entry to the logged on
users database
- login_time
- Timestamp (time in seconds since epoch) when the user logged on
- systime
- The timestamp when the above stats where collected in seconds since
epoch
⟨https://libstatgrab.org/⟩