getuts(3C)getuts(3C)NAME
getuts: endutsent(), getutsent(), getutsid(), getutsline(), putut‐
sline(), setutsent(), ENDUTSENT(), GETUTSENT(), GETUTSID(), GETUT‐
SLINE(), PUTUTSLINE(), SETUTSENT(), - access and update routines for
user-accounting database maintained by utmpd
SYNOPSIS
Remarks
The size of the structure (for example is passed as utmps_size parame‐
ter in the above calls.
A macro equivalent exists for each of the above function calls. These
macros provide a shorthand way of calling getuts(3C) functions, by
implicitly passing the utmps_size parameter to the corresponding
getuts(3C) function.
DESCRIPTION
and each return a pointer to a structure, the key elements of the
structure are
char ut_user[] User login name
char ut_id[] Unique Id to distinguish an entry
char ut_line[] Device name
pid_t ut_pid Process Id
short ut_type Type of Entry
struct ut_exit The exit status of a process
struct timeval ut_tv Time entry was made
char ut_host[] Host name, if remote
uint8_t ut_addr[] Internet Address of the Host,
if remote
short ut_addr_type Flag to identify type of address
in ut_addr
Routines
This call returns the next record from the in-memory
user accounting database maintained by
utmpd(1M). When the end of the database is
reached fails and returns NULL. The macro
is a wrapper around and implicitly passes
the utmps_size parameter.
For entries of ut_type matching and searches the database
for an entry matching id->ut_id field. The
record is fetched irrespective of the cur‐
rent position in the internal ordering and
does not alter the current position in the
internal ordering for the API.
If ut_type specified is or fetches an entry
with a ut_type matching id->ut_type. If no
matching entry is found fails and returns
NULL. The macro is a wrapper around and
implicitly passes the utmps_size parameter
to
This is similar to It searches the utmpd(1M)'s database for an
entry of type or that also has the ut_line
field matching the line->ut_line string. If
the entry is not found in the database,
fails and returns NULL. The record is
fetched irrespective of the current position
in the internal ordering and does not alter
the internal ordering for the API. The
macro is a wrapper around and implicitly
passes the utmps_size parameter to
Writes out the supplied
structure into the in-memory user accounting
database maintained by utmpd(1M). For
entries of ut_type matching and searches the
utmpd(1M)'s database for an entry matching
utmps->ut_id field. If the entry already
exists in the utmpd(1M)'s database, this API
updates the entry already present. Other‐
wise, adds a new entry into the utmpd(1M)'s
database.
If ut_type specified is or updates the entry
with ut_type matching utmps->ut_type. The
macro is a wrapper around and implicitly
passes the utmps_size parameter to
This API searches the
utmpd(1M)'s database for an entry with
ut_pid matching the pid argument. Since pid
has significance only for currently ACTIVE
processes, matching is done only for
entries of type or On finding a matching
entry, returns the corresponding entry; oth‐
erwise, fails and returns NULL. The macro
is a wrapper around and implicitly passes
the utmps_size parameter to
Resets the requests for
to begin from the start of the utmpd(1M)'s
database. It also clears out the static
structure. The macro is a wrapper around
It closes any open file descriptors and clears out the static
structure.
The macro is a wrapper around
The specific calling convention of passing the expected data structure
size is used in order to allow for future expansion of the interface,
and the structure while preserving backward compatibility for programs
written using the getuts(3C) interfaces.
The interfaces encode the version information of the structure in the
utmps_size parameter. Should the structure change in a future release,
utmpd(1M) and libc interfaces detect the version of the structure the
application was compiled with based on the utmps_size parameter and
return the appropriate structure.
The getuts(3C) interfaces use file only when the utmpd(1M) is not run‐
ning. This feature may be discontinued in a future release.
The field in the structure can hold a 16 byte IPv6 address. In case
applications want to write a four byte IPv4 address into this field,
they must initialize the field to and use the last four bytes of the
field. Applications which write an IPv6 address into the field must
initialize the to and are macros defined in header file.
RETURN VALUE
and return a pointer to static structure on success. On failure they
return NULL.
ERRORS
The size parameter passed to the
functions does not match any of the structure sizes sup‐
ported by the server.
WARNINGS
If the size of a member of the structure changes in a future release,
applications compiled with older version of the structure will get
truncated information for the structure fields that have expanded. To
get the complete information, the applications have to be re-compiled.
The value returned by and points to a single static area that is over‐
written by each call to any of the functions, so it must be copied if
it is to be saved.
AUTHOR
The routines were developed by Hewlett-Packard Company.
FILESSEE ALSOutmpd(1M), bwtmps(3C), thread_safety(5).
getuts(3C)