summaryrefslogtreecommitdiffstats
path: root/man3/login.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/login.3')
-rw-r--r--man3/login.3114
1 files changed, 114 insertions, 0 deletions
diff --git a/man3/login.3 b/man3/login.3
new file mode 100644
index 000000000..d9c1e9b6d
--- /dev/null
+++ b/man3/login.3
@@ -0,0 +1,114 @@
+.\" 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, write to the Free
+.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
+.\" USA.
+.\"
+.\" Derived from text written by Martin Schulze (or taken from glibc.info)
+.\" and text written by Paul Thompson - both copyright 2002.
+.\"
+.TH LOGIN 3 2004-05-06 "GNU/Linux" "Linux System Administration"
+.SH NAME
+login, logout \- write utmp and wtmp entries
+.SH SYNOPSIS
+.B #include <utmp.h>
+.sp
+.BI "void login(const struct utmp *" ut );
+.br
+.BI "int logout(const char *" ut_line );
+.SH DESCRIPTION
+The utmp file records who is currently using the system.
+The wtmp file records all logins and logouts. See
+.BR utmp (5).
+.LP
+The function
+.BR login ()
+takes the supplied struct utmp
+.IR ut ,
+and writes it to both utmp and wtmp file.
+.LP
+The function
+.BR logout ()
+clears the entry in the utmp file again.
+.SH "GNU DETAILS"
+More precisely,
+.BR login ()
+takes the argument
+.I ut
+struct, fills the field
+.I ut->ut_type
+(if there is such a field) with the value
+.BR USER_PROCESS ,
+and fills the field
+.I ut->ut_pid
+(if there is such a field) with the process ID of the calling process.
+Then it tries to fill the field
+.IR ut->ut_line .
+It takes the first of stdin, stdout, stderr that is a tty, 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 tty 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.
+.LP
+The
+.BR logout ()
+function searches the utmp file for an entry matching the
+.I ut_line
+argument. If a record is found, it is updated by zeroing out the
+.I ut_name
+and
+.I ut_host
+fields, updating the
+.I ut_tv
+timestamp field and setting
+.I ut_type
+(if there is such a field) to
+.BR DEAD_PROCESS .
+.SH "RETURN VALUES"
+The
+.BR logout ()
+function returns 1 if the entry was successfully written to the
+database, or 0 if an error occurred.
+.SH NOTE
+These functions are included in libutil, hence you'll need to add
+.B \-lutil
+to your compiler commandline.
+
+Note that the
+member
+.B ut_user
+of struct utmp is called
+.B ut_name
+in BSD. Therefore,
+.B ut_name
+is defined as an alias for
+.B ut_user
+in
+.IR utmp.h .
+.SH FILES
+.TP
+.I /var/run/utmp
+user accounting database, configured through _PATH_UTMP in
+.I <paths.h>
+.TP
+.I /var/log/wtmp
+user accounting log file, configured through _PATH_WTMP in
+.I <paths.h>
+.SH "SEE ALSO"
+.BR getutent (3),
+.BR utmp (5)