Name

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

Synopsis

#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;
 

Description

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

functionreturnsdata owner
sg_get_user_statssg_user_stats *libstatgrab (thread local)
sg_get_user_stats_rsg_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.

Return Values

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

See Also

statgrab(3)

Website

https://libstatgrab.org/