These functions, derived from BSD, are available in the separate
libutil library, and declared in utmp.h.
Note that the
ut_user member of
struct utmp is called
ut_name in BSD. Therefore,
ut_name is defined as an alias
ut_user in utmp.h.
Preliminary: | MT-Unsafe race:ttyname | AS-Unsafe heap lock | AC-Unsafe lock fd mem | See POSIX Safety Concepts.
This function makes filedes the controlling terminal of the current process, redirects standard input, standard output and standard error output to this terminal, and closes filedes.
This function returns
0on successful completion, and
Preliminary: | MT-Unsafe race:utent sig:ALRM timer | AS-Unsafe lock heap | AC-Unsafe lock corrupt fd mem | See POSIX Safety Concepts.
loginfunctions inserts an entry into the user accounting database. The
ut_linemember is set to the name of the terminal on standard input. If standard input is not a terminal
loginuses standard output or standard error output to determine the name of the terminal. If
struct utmphas a
loginsets it to
USER_PROCESS, and if there is an
ut_pidmember, it will be set to the process ID of the current process. The remaining entries are copied from entry.
A copy of the entry is written to the user accounting log file.
Preliminary: | MT-Unsafe race:utent sig:ALRM timer | AS-Unsafe lock heap | AC-Unsafe lock fd mem | See POSIX Safety Concepts.
This function modifies the user accounting database to indicate that the user on ut_line has logged out.
1if the entry was successfully written to the database, or
Preliminary: | MT-Unsafe sig:ALRM timer | AS-Unsafe | AC-Unsafe fd | See POSIX Safety Concepts.
logwtmpfunction appends an entry to the user accounting log file, for the current time and the information provided in the ut_line, ut_name and ut_host arguments.
Portability Note: The BSD
struct utmp only has the
members. Older systems do not even have the