login, logout — write utmp and wtmp entries
||const struct utmp *ut
||const char *ut_line
The utmp file records who is currently using the system. The wtmp file records all logins and logouts. See utmp(5).
the supplied struct
and writes it to both the utmp and the wtmp file.
the entry in the utmp file again.
takes the argument
ut struct, fills the field
there is such a field) with the value
USER_PROCESS, and fills the field
there is such a field) with the process ID of the calling
process. Then it tries to fill the field
takes the first of
stderr that is a terminal, and stores the
corresponding pathname minus a possible leading
/dev/ into this field, and
then writes the struct to the utmp file. On the other hand,
if no terminal name was found, this field is filled with
"???" and the struct is not written to the utmp file. After
this, the struct is written to the wtmp file.
searches the utmp file for an entry matching the
ut_line argument. If a record
is found, it is updated by zeroing out the
ut_host fields, updating the
ut_tv timestamp field and setting
ut_type (if there is such a
returns 1 if the entry was successfully written to the
database, or 0 if an error occurred.
user accounting database, configured through
user accounting log file, configured through
For an explanation of the terms used in this section, see attributes(7).
In the above table,
signifies that if any of the functions setutent(3), getutent(3), or endutent(3) are used in
parallel in different threads of a program, then data races
could occur. login(3) and logout(3) calls those
functions, so we use race:utent to remind users.
Note that the member
of struct utmp is
ut_name in BSD.
ut_name is defined as
an alias for
This page is part of release 4.07 of the Linux
man-pages project. A
description of the project, information about reporting bugs,
and the latest version of this page, can be found at
Derived from text written by Martin Schulze (or taken from glibc.info)
and text written by Paul Thompson - both copyright 2002.
This is free documentation; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
The GNU General Public License's references to "object code"
and "executables" are to be interpreted as the output of any
document formatting or typesetting system, including
intermediate and printed output.
This manual is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this manual; if not, see