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( | entries) ; |
size_t *entries
;sg_user_stats *sg_get_user_stats_r( | entries) ; |
size_t *entries
;sg_error sg_free_user_stats( | data) ; |
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.
Table 1. 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