Node:Logging In and Out, Previous:XPG Functions, Up:User Accounting Database
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
for ut_user in utmp.h.
| int login_tty (int filedes) | Function | 
| 
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   | 
| void login (const struct utmp *entry) | Function | 
The login functions inserts an entry into the user accounting
database.  The ut_line member is set to the name of the terminal
on standard input.  If standard input is not a terminal login
uses standard output or standard error output to determine the name of
the terminal.  If struct utmp has a ut_type member,
login sets it to USER_PROCESS, and if there is an
ut_pid member, 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.  | 
| int logout (const char *ut_line) | Function | 
| 
This function modifies the user accounting database to indicate that the
user on ut_line has logged out.
 The   | 
| void logwtmp (const char *ut_line, const char *ut_name, const char *ut_host) | Function | 
The logwtmp function 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
ut_line, ut_name, ut_host and ut_time
members.  Older systems do not even have the ut_host member.