msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-03-19 23:50+0900\n"
+"POT-Creation-Date: 2015-02-04 23:33+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: TH
-#: build/C/man3/getutent.3:30
+#: build/C/man3/getutent.3:31
#, no-wrap
msgid "GETUTENT"
msgstr ""
#. type: TH
-#: build/C/man3/getutent.3:30
+#: build/C/man3/getutent.3:31 build/C/man3/updwtmp.3:29 build/C/man5/utmp.5:30
#, no-wrap
-msgid "2008-06-29"
+msgid "2014-08-19"
msgstr ""
#. type: TH
-#: build/C/man3/getutent.3:30 build/C/man3/getutmp.3:24 build/C/man3/login.3:24 build/C/man3/updwtmp.3:23 build/C/man5/utmp.5:29
+#: build/C/man3/getutent.3:31 build/C/man3/getutmp.3:26 build/C/man3/login.3:25 build/C/man3/updwtmp.3:29 build/C/man5/utmp.5:30
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:31 build/C/man3/getutmp.3:25 build/C/man3/login.3:25 build/C/man3/updwtmp.3:24 build/C/man5/utmp.5:30
+#: build/C/man3/getutent.3:32 build/C/man3/getutmp.3:27 build/C/man3/login.3:26 build/C/man3/updwtmp.3:30 build/C/man5/utmp.5:31
#, no-wrap
msgid "NAME"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:34
+#: build/C/man3/getutent.3:35
msgid ""
"getutent, getutid, getutline, pututline, setutent, endutent, utmpname - "
"access utmp file entries"
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:34 build/C/man3/getutmp.3:27 build/C/man3/login.3:27 build/C/man3/updwtmp.3:26 build/C/man5/utmp.5:32
+#: build/C/man3/getutent.3:35 build/C/man3/getutmp.3:29 build/C/man3/login.3:28 build/C/man3/updwtmp.3:32 build/C/man5/utmp.5:33
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:36 build/C/man3/login.3:29 build/C/man5/utmp.5:34
+#: build/C/man3/getutent.3:37 build/C/man3/login.3:30 build/C/man5/utmp.5:35
msgid "B<#include E<lt>utmp.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:38
+#: build/C/man3/getutent.3:39
msgid "B<struct utmp *getutent(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:40
-msgid "B<struct utmp *getutid(struct utmp *>I<ut>B<);>"
+#: build/C/man3/getutent.3:41
+msgid "B<struct utmp *getutid(const struct utmp *>I<ut>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:42
-msgid "B<struct utmp *getutline(struct utmp *>I<ut>B<);>"
+#: build/C/man3/getutent.3:43
+msgid "B<struct utmp *getutline(const struct utmp *>I<ut>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:44
-msgid "B<struct utmp *pututline(struct utmp *>I<ut>B<);>"
+#: build/C/man3/getutent.3:45
+msgid "B<struct utmp *pututline(const struct utmp *>I<ut>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:46
+#: build/C/man3/getutent.3:47
msgid "B<void setutent(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:48
+#: build/C/man3/getutent.3:49
msgid "B<void endutent(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:50
+#: build/C/man3/getutent.3:51
msgid "B<int utmpname(const char *>I<file>B<);>"
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:50 build/C/man3/getutmp.3:35 build/C/man3/login.3:35 build/C/man3/updwtmp.3:35 build/C/man5/utmp.5:34
+#: build/C/man3/getutent.3:51 build/C/man3/getutmp.3:37 build/C/man3/login.3:36 build/C/man3/updwtmp.3:45 build/C/man5/utmp.5:35
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:53
+#: build/C/man3/getutent.3:54
msgid ""
"New applications should use the POSIX.1-specified \"utmpx\" versions of "
"these functions; see CONFORMING TO."
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:62
+#: build/C/man3/getutent.3:63
msgid ""
"B<utmpname>() sets the name of the utmp-format file for the other utmp "
"functions to access. If B<utmpname>() is not used to set the filename "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:67
+#: build/C/man3/getutent.3:68
msgid ""
"B<setutent>() rewinds the file pointer to the beginning of the utmp file. "
"It is generally a good idea to call it before any of the other functions."
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:72
+#: build/C/man3/getutent.3:73
msgid ""
"B<endutent>() closes the utmp file. It should be called when the user code "
"is done accessing the file with the other functions."
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:79
+#: build/C/man3/getutent.3:80
msgid ""
"B<getutent>() reads a line from the current file position in the utmp "
"file. It returns a pointer to a structure containing the fields of the "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:95
+#: build/C/man3/getutent.3:96
msgid ""
"B<getutid>() searches forward from the current file position in the utmp "
"file based upon I<ut>. If I<ut-E<gt>ut_type> is one of B<RUN_LVL>, "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:105
+#: build/C/man3/getutent.3:106
msgid ""
"B<getutline>() searches forward from the current file position in the utmp "
"file. It scans entries whose I<ut_type> is B<USER_PROCESS> or "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:117
+#: build/C/man3/getutent.3:118
msgid ""
"B<pututline>() writes the I<utmp> structure I<ut> into the utmp file. It "
"uses B<getutid>() to search for the proper place in the file to insert the "
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:117 build/C/man3/getutmp.3:49 build/C/man3/login.3:87
+#: build/C/man3/getutent.3:118 build/C/man3/getutmp.3:51 build/C/man3/login.3:94
#, no-wrap
msgid "RETURN VALUE"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:126
+#: build/C/man3/getutent.3:127
msgid ""
"B<getutent>(), B<getutid>(), and B<getutline>() return a pointer to a "
"I<struct utmp> on success, and NULL on failure (which includes the \"record "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:132
+#: build/C/man3/getutent.3:133
msgid "On success B<pututline>() returns I<ut>; on failure, it returns NULL."
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:135
+#: build/C/man3/getutent.3:136
msgid ""
"B<utmpname>() returns 0 if the new name was successfully stored, or -1 on "
"failure."
msgstr ""
+#. type: Plain text
+#: build/C/man3/getutent.3:140
+msgid ""
+"In the event of an error, these functions I<errno> set to indicate the "
+"cause."
+msgstr ""
+
#. type: SH
-#: build/C/man3/getutent.3:135
+#: build/C/man3/getutent.3:140
#, no-wrap
msgid "ERRORS"
msgstr ""
#. type: TP
-#: build/C/man3/getutent.3:136
+#: build/C/man3/getutent.3:141
#, no-wrap
msgid "B<ENOMEM>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:139
+#: build/C/man3/getutent.3:144
msgid "Out of memory."
msgstr ""
#. type: TP
-#: build/C/man3/getutent.3:139
+#: build/C/man3/getutent.3:144
#, no-wrap
msgid "B<ESRCH>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:142
+#: build/C/man3/getutent.3:147
msgid "Record not found."
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:149
+#: build/C/man3/getutent.3:154
msgid ""
-"B<setutent>(), B<pututline>(), and the B<getut* ()> functions can also fail "
+"B<setutent>(), B<pututline>(), and the B<getut*>() functions can also fail "
"for the reasons described in B<open>(2)."
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:149 build/C/man3/login.3:92 build/C/man3/updwtmp.3:48 build/C/man5/utmp.5:223
+#: build/C/man3/getutent.3:154 build/C/man3/login.3:99 build/C/man3/updwtmp.3:58 build/C/man5/utmp.5:224
#, no-wrap
msgid "FILES"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:151
+#: build/C/man3/getutent.3:156
msgid "/var/run/utmp\tdatabase of currently logged-in users"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:153
+#: build/C/man3/getutent.3:158
msgid "/var/log/wtmp\tdatabase of past user logins"
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:153 build/C/man3/getutmp.3:53 build/C/man3/login.3:105 build/C/man3/updwtmp.3:52 build/C/man5/utmp.5:227
+#: build/C/man3/getutent.3:158 build/C/man3/getutmp.3:62 build/C/man3/login.3:112 build/C/man3/updwtmp.3:62 build/C/man5/utmp.5:228
#, no-wrap
msgid "CONFORMING TO"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:155
+#: build/C/man3/getutent.3:160
msgid "XPG2, SVr4."
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:165
+#: build/C/man3/getutent.3:169
msgid ""
"In XPG2 and SVID 2 the function B<pututline>() is documented to return "
-"void, and that is what it does on many systems (AIX, HP-UX, Linux libc5). "
-"HP-UX introduces a new function B<_pututline>() with the prototype given "
-"above for B<pututline>() (also found in Linux libc5)."
+"void, and that is what it does on many systems (AIX, HP-UX). HP-UX "
+"introduces a new function B<_pututline>() with the prototype given above "
+"for B<pututline>()."
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:169
+#: build/C/man3/getutent.3:173
msgid ""
"All these functions are obsolete now on non-Linux systems. POSIX.1-2001, "
"following SUSv1, does not have any of these functions, but instead uses"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:171
+#: build/C/man3/getutent.3:175
msgid "B<#include E<lt>utmpx.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:173
+#: build/C/man3/getutent.3:177
msgid "B<struct utmpx *getutxent(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:175
+#: build/C/man3/getutent.3:179
msgid "B<struct utmpx *getutxid(const struct utmpx *);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:177
+#: build/C/man3/getutent.3:181
msgid "B<struct utmpx *getutxline(const struct utmpx *);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:179
+#: build/C/man3/getutent.3:183
msgid "B<struct utmpx *pututxline(const struct utmpx *);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:181
+#: build/C/man3/getutent.3:185
msgid "B<void setutxent(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:183
+#: build/C/man3/getutent.3:187
msgid "B<void endutxent(void);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:192
+#: build/C/man3/getutent.3:196
msgid ""
"These functions are provided by glibc, and perform the same task as their "
"equivalents without the \"x\", but use I<struct utmpx>, defined on Linux to "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:200
+#: build/C/man3/getutent.3:204
msgid ""
"On some other systems, the I<utmpx> structure is a superset of the I<utmp> "
"structure, with additional fields, and larger versions of the existing "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:205
+#: build/C/man3/getutent.3:212
msgid ""
"Linux glibc on the other hand does not use a parallel I<utmpx> file since "
-"its I<utmp> structure is already large enough. The functions B<getutxent>() "
-"etc. are aliases for B<getutent>() etc."
+"its I<utmp> structure is already large enough. The \"x\" functions listed "
+"above are just aliases for their counterparts without the \"x\" (e.g., "
+"B<getutxent>() is an alias for B<getutent>())."
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:205 build/C/man3/getutmp.3:56 build/C/man3/login.3:108 build/C/man3/updwtmp.3:65 build/C/man5/utmp.5:279
+#: build/C/man3/getutent.3:212 build/C/man3/getutmp.3:65 build/C/man3/login.3:115 build/C/man3/updwtmp.3:65 build/C/man5/utmp.5:280
#, no-wrap
msgid "NOTES"
msgstr ""
#. type: SS
-#: build/C/man3/getutent.3:206
+#: build/C/man3/getutent.3:213
#, no-wrap
-msgid "Glibc Notes"
+msgid "Glibc notes"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:209
+#: build/C/man3/getutent.3:216
msgid "The above functions are not thread-safe. Glibc adds reentrant versions"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:214
+#: build/C/man3/getutent.3:221
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* or _SVID_SOURCE or _BSD_SOURCE;\n"
-"\\& see B<feature_test_macros(7)> */\n"
+"\\& see B<feature_test_macros>(7) */\n"
"B<#include E<lt>utmp.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:216
+#: build/C/man3/getutent.3:223
#, no-wrap
msgid "B<int getutent_r(struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:219
+#: build/C/man3/getutent.3:226
#, no-wrap
msgid ""
"B<int getutid_r(struct utmp *>I<ut>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:222
+#: build/C/man3/getutent.3:229
#, no-wrap
msgid ""
"B<int getutline_r(struct utmp *>I<ut>B<,>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:234
+#: build/C/man3/getutent.3:241
msgid ""
"These functions are GNU extensions, analogs of the functions of the same "
"name without the _r suffix. The I<ubuf> argument gives these functions a "
"place to store their result. On success they return 0, and a pointer to the "
-"result is written in I<*ubufp>. On error these functions return -1. There "
+"result is written in I<*ubufp>. On error, these functions return -1. There "
"are no utmpx equivalents of the above functions. (POSIX.1 does not specify "
"such functions.)"
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:234
+#: build/C/man3/getutent.3:241
#, no-wrap
msgid "EXAMPLE"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:242
+#: build/C/man3/getutent.3:249
msgid ""
"The following example adds and removes a utmp record, assuming it is run "
"from within a pseudo terminal. For usage in a real application, you should "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:249
+#: build/C/man3/getutent.3:256
#, no-wrap
msgid ""
"#include E<lt>string.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:254
+#: build/C/man3/getutent.3:261
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:256
+#: build/C/man3/getutent.3:263
#, no-wrap
msgid " system(\"echo before adding entry:;who\");\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:268
+#: build/C/man3/getutent.3:275
#, no-wrap
msgid ""
" entry.ut_type = USER_PROCESS;\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:270
+#: build/C/man3/getutent.3:277
#, no-wrap
msgid " system(\"echo after adding entry:;who\");\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:277
+#: build/C/man3/getutent.3:284
#, no-wrap
msgid ""
" entry.ut_type = DEAD_PROCESS;\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:279
+#: build/C/man3/getutent.3:286
#, no-wrap
msgid " system(\"echo after removing entry:;who\");\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:283
+#: build/C/man3/getutent.3:290
#, no-wrap
msgid ""
" endutent();\n"
"}\n"
msgstr ""
+#. .PP
+#. Note that the \fIutmp\fP struct from libc5 has changed in libc6.
+#. Because of this,
+#. binaries using the old libc5 struct will corrupt
+#. .IR /var/run/utmp " and/or " /var/log/wtmp .
+#. .SH BUGS
+#. This man page is based on the libc5 one, things may work differently now.
#. type: SH
-#: build/C/man3/getutent.3:284 build/C/man3/getutmp.3:67 build/C/man3/login.3:123 build/C/man3/updwtmp.3:81 build/C/man5/utmp.5:337
+#: build/C/man3/getutent.3:291 build/C/man3/getutmp.3:76 build/C/man3/login.3:130 build/C/man3/updwtmp.3:81 build/C/man5/utmp.5:338
#, no-wrap
msgid "SEE ALSO"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:287
+#: build/C/man3/getutent.3:294
msgid "B<getutmp>(3), B<utmp>(5)"
msgstr ""
#. type: SH
-#: build/C/man3/getutent.3:287 build/C/man3/getutmp.3:70 build/C/man3/login.3:126 build/C/man3/updwtmp.3:84 build/C/man5/utmp.5:350
+#: build/C/man3/getutent.3:294 build/C/man3/getutmp.3:80 build/C/man3/login.3:133 build/C/man3/updwtmp.3:84 build/C/man5/utmp.5:352
#, no-wrap
msgid "COLOPHON"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutent.3:294 build/C/man3/getutmp.3:77 build/C/man3/login.3:133 build/C/man3/updwtmp.3:91 build/C/man5/utmp.5:357
+#: build/C/man3/getutent.3:302 build/C/man3/getutmp.3:88 build/C/man3/login.3:141 build/C/man3/updwtmp.3:92 build/C/man5/utmp.5:360
msgid ""
-"This page is part of release 3.35 of the Linux I<man-pages> project. A "
-"description of the project, and information about reporting bugs, can be "
-"found at http://man7.org/linux/man-pages/."
+"This page is part of release 3.79 of the Linux I<man-pages> project. A "
+"description of the project, information about reporting bugs, and the latest "
+"version of this page, can be found at "
+"\\%http://www.kernel.org/doc/man-pages/."
msgstr ""
#. type: TH
-#: build/C/man3/getutmp.3:24
+#: build/C/man3/getutmp.3:26
#, no-wrap
msgid "GETUTMP"
msgstr ""
#. type: TH
-#: build/C/man3/getutmp.3:24
+#: build/C/man3/getutmp.3:26
#, no-wrap
-msgid "2010-09-10"
+msgid "2014-04-08"
msgstr ""
#. type: TH
-#: build/C/man3/getutmp.3:24 build/C/man5/utmp.5:29
+#: build/C/man3/getutmp.3:26 build/C/man5/utmp.5:30
#, no-wrap
msgid "Linux"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutmp.3:27
+#: build/C/man3/getutmp.3:29
msgid "getutmp, getutmpx - copy utmp structure to utmpx, and vice versa"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutmp.3:31
+#: build/C/man3/getutmp.3:33
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutmp.3:34
+#: build/C/man3/getutmp.3:36
#, no-wrap
msgid ""
"B< void getutmp(const struct utmpx *>I<ux>B<, struct utmp *>I<u>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutmp.3:49
+#: build/C/man3/getutmp.3:51
msgid ""
"The B<getutmp>() function copies the fields of the I<utmpx> structure "
"pointed to by I<ux> to the corresponding fields of the I<utmp> structure "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutmp.3:51
+#: build/C/man3/getutmp.3:53
msgid "These functions do not return a value."
msgstr ""
#. type: SH
-#: build/C/man3/getutmp.3:51
+#: build/C/man3/getutmp.3:53
#, no-wrap
msgid "VERSIONS"
msgstr ""
#. type: Plain text
-#: build/C/man3/getutmp.3:53
+#: build/C/man3/getutmp.3:55
msgid "These functions first appeared in glibc in version 2.1.1."
msgstr ""
-#. type: Plain text
+#. type: SH
+#: build/C/man3/getutmp.3:55
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr ""
+
+#. type: SS
#: build/C/man3/getutmp.3:56
+#, no-wrap
+msgid "Multithreading (see pthreads(7))"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getutmp.3:62
+msgid "The B<getutmp>() and B<getutmpx>() functions are thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getutmp.3:65
msgid ""
"These functions are nonstandard, but appear on a few other systems, such as "
"Solaris and NetBSD."
#. e.g., on Solaris, the utmpx structure is rather larger than utmp.
#. type: Plain text
-#: build/C/man3/getutmp.3:67
+#: build/C/man3/getutmp.3:76
msgid ""
"These functions exist primarily for compatibility with other systems where "
"the I<utmp> and I<utmpx> structures contain different fields, or the size of "
msgstr ""
#. type: Plain text
-#: build/C/man3/getutmp.3:70 build/C/man3/login.3:126
-msgid "B<getutent>(3), B<utmp>(5)"
+#: build/C/man3/getutmp.3:80
+msgid "B<utmpdump>(1), B<getutent>(3), B<utmp>(5)"
msgstr ""
#. type: TH
-#: build/C/man3/login.3:24
+#: build/C/man3/login.3:25
#, no-wrap
msgid "LOGIN"
msgstr ""
#. type: TH
-#: build/C/man3/login.3:24
+#: build/C/man3/login.3:25
#, no-wrap
msgid "2004-05-06"
msgstr ""
#. type: TH
-#: build/C/man3/login.3:24 build/C/man3/updwtmp.3:23
+#: build/C/man3/login.3:25 build/C/man3/updwtmp.3:29
#, no-wrap
msgid "GNU"
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:27
+#: build/C/man3/login.3:28
msgid "login, logout - write utmp and wtmp entries"
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:31
+#: build/C/man3/login.3:32
msgid "B<void login(const struct utmp *>I<ut>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:33
+#: build/C/man3/login.3:34
msgid "B<int logout(const char *>I<ut_line>B<);>"
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:35
+#: build/C/man3/login.3:36
msgid "Link with I<-lutil>."
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:40
+#: build/C/man3/login.3:41
msgid ""
"The utmp file records who is currently using the system. The wtmp file "
"records all logins and logouts. See B<utmp>(5)."
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:46
+#: build/C/man3/login.3:48
msgid ""
"The function B<login>() takes the supplied I<struct utmp>, I<ut>, and "
"writes it to both the utmp and the wtmp file."
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:50
+#: build/C/man3/login.3:52
msgid "The function B<logout>() clears the entry in the utmp file again."
msgstr ""
#. type: SS
-#: build/C/man3/login.3:50
+#: build/C/man3/login.3:52
#, no-wrap
-msgid "GNU Details"
+msgid "GNU details"
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:71
+#: build/C/man3/login.3:78
msgid ""
"More precisely, B<login>() takes the argument I<ut> struct, fills the field "
"I<ut-E<gt>ut_type> (if there is such a field) with the value "
"B<USER_PROCESS>, and fills the field I<ut-E<gt>ut_pid> (if there is such a "
"field) with the process ID of the calling process. Then it tries to fill "
"the field I<ut-E<gt>ut_line>. It takes the first of I<stdin>, I<stdout>, "
-"I<stderr> that is a tty, and stores the corresponding pathname minus a "
+"I<stderr> that is a terminal, and stores the corresponding pathname minus a "
"possible leading I</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 "
+"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."
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:87
+#: build/C/man3/login.3:94
msgid ""
"The B<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 "
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:92
+#: build/C/man3/login.3:99
msgid ""
"The B<logout>() function returns 1 if the entry was successfully written to "
"the database, or 0 if an error occurred."
msgstr ""
#. type: TP
-#: build/C/man3/login.3:93
+#: build/C/man3/login.3:100
#, no-wrap
msgid "I</var/run/utmp>"
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:99
+#: build/C/man3/login.3:106
msgid ""
"user accounting database, configured through B<_PATH_UTMP> in "
"I<E<lt>paths.hE<gt>>"
msgstr ""
#. type: TP
-#: build/C/man3/login.3:99 build/C/man3/updwtmp.3:49
+#: build/C/man3/login.3:106 build/C/man3/updwtmp.3:59
#, no-wrap
msgid "I</var/log/wtmp>"
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:105
+#: build/C/man3/login.3:112
msgid ""
"user accounting log file, configured through B<_PATH_WTMP> in "
"I<E<lt>paths.hE<gt>>"
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:108
+#: build/C/man3/login.3:115
msgid "Not in POSIX.1-2001. Present on the BSDs."
msgstr ""
#. type: Plain text
-#: build/C/man3/login.3:123
+#: build/C/man3/login.3:130
msgid ""
"Note that the member I<ut_user> of I<struct utmp> is called I<ut_name> in "
"BSD. Therefore, I<ut_name> is defined as an alias for I<ut_user> in "
"I<E<lt>utmp.hE<gt>>."
msgstr ""
-#. type: TH
-#: build/C/man3/updwtmp.3:23
-#, no-wrap
-msgid "UPDWTMP"
+#. type: Plain text
+#: build/C/man3/login.3:133
+msgid "B<getutent>(3), B<utmp>(5)"
msgstr ""
#. type: TH
-#: build/C/man3/updwtmp.3:23
+#: build/C/man3/updwtmp.3:29
#, no-wrap
-msgid "2008-07-02"
+msgid "UPDWTMP"
msgstr ""
#. type: Plain text
-#: build/C/man3/updwtmp.3:26
+#: build/C/man3/updwtmp.3:32
msgid "updwtmp, logwtmp - append an entry to the wtmp file"
msgstr ""
#. type: Plain text
-#: build/C/man3/updwtmp.3:29
+#: build/C/man3/updwtmp.3:35
#, no-wrap
msgid "B<#include E<lt>utmp.hE<gt>>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/updwtmp.3:31
+#: build/C/man3/updwtmp.3:37
#, no-wrap
msgid "B<void updwtmp(const char *>I<wtmp_file>B<, const struct utmp *>I<ut>B<);>\n"
msgstr ""
#. type: Plain text
-#: build/C/man3/updwtmp.3:34
+#: build/C/man3/updwtmp.3:40
#, no-wrap
msgid ""
"B<void logwtmp(const char *>I<line>B<, const char *>I<name>B<, const char "
msgstr ""
#. type: Plain text
-#: build/C/man3/updwtmp.3:40
+#: build/C/man3/updwtmp.3:45
+msgid "For B<logwtmp>(), link with I<-lutil>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/updwtmp.3:50
msgid "B<updwtmp>() appends the utmp structure I<ut> to the wtmp file."
msgstr ""
#. type: Plain text
-#: build/C/man3/updwtmp.3:48
+#: build/C/man3/updwtmp.3:58
msgid ""
"B<logwtmp>() constructs a utmp structure using I<line>, I<name>, I<host>, "
"current time and current process ID. Then it calls B<updwtmp>() to append "
msgstr ""
#. type: Plain text
-#: build/C/man3/updwtmp.3:52
+#: build/C/man3/updwtmp.3:62
msgid "database of past user logins"
msgstr ""
#. type: Plain text
-#: build/C/man3/updwtmp.3:55
-msgid "Not in POSIX.1-2001. Present on Solaris, NetBSD, and perhaps other systems."
-msgstr ""
-
-#. type: SH
-#: build/C/man3/updwtmp.3:55
-#, no-wrap
-msgid "AVAILABILITY"
-msgstr ""
-
-#. type: Plain text
#: build/C/man3/updwtmp.3:65
-msgid ""
-"Both functions are available under glibc2, but not under libc5. However, "
-"B<logwtmp>() used to occur in the old libbsd. These days, the B<logwtmp>() "
-"function is included in libutil. (Hence you'll need to add I<-lutil> to "
-"your compiler command line to get it.)"
+msgid "Not in POSIX.1-2001. Present on Solaris, NetBSD, and perhaps other systems."
msgstr ""
#. type: Plain text
msgstr ""
#. type: TH
-#: build/C/man5/utmp.5:29
+#: build/C/man5/utmp.5:30
#, no-wrap
msgid "UTMP"
msgstr ""
-#. type: TH
-#: build/C/man5/utmp.5:29
-#, no-wrap
-msgid "2011-09-28"
-msgstr ""
-
#. type: Plain text
-#: build/C/man5/utmp.5:32
+#: build/C/man5/utmp.5:33
msgid "utmp, wtmp - login records"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:41
+#: build/C/man5/utmp.5:42
msgid ""
"The I<utmp> file allows one to discover information about who is currently "
"using the system. There may be more users currently using the system, "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:51
+#: build/C/man5/utmp.5:52
msgid ""
"B<Warning:> I<utmp> must not be writable by the user class \"other\", "
"because many system programs (foolishly) depend on its integrity. You risk "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:59
+#: build/C/man5/utmp.5:60
msgid ""
"The file is a sequence of I<utmp> structures, declared as follows in "
"I<E<lt>utmp.hE<gt>> (note that this is only one of several definitions "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:63
+#: build/C/man5/utmp.5:64
#, no-wrap
msgid "/* Values for ut_type field, below */\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:78
+#: build/C/man5/utmp.5:79
#, no-wrap
msgid ""
"#define EMPTY 0 /* Record does not contain valid info\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:82
+#: build/C/man5/utmp.5:83
#, no-wrap
msgid ""
"#define UT_LINESIZE 32\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:87
+#: build/C/man5/utmp.5:88
#, no-wrap
msgid ""
"struct exit_status { /* Type for ut_exit, below */\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:115
+#: build/C/man5/utmp.5:116
#, no-wrap
msgid ""
"struct utmp {\n"
" messages */\n"
" struct exit_status ut_exit; /* Exit status of a process\n"
" marked as DEAD_PROCESS; not\n"
-" used by Linux init(8) */\n"
+" used by Linux init (1 */\n"
" /* The ut_session and ut_tv fields must be the same size when\n"
" compiled 32- and 64-bit. This allows data files and shared\n"
" memory to be shared between 32- and 64-bit applications. */\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:121
+#: build/C/man5/utmp.5:122
#, no-wrap
msgid ""
" int32_t ut_addr_v6[4]; /* Internet address of remote\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:129
+#: build/C/man5/utmp.5:130
#, no-wrap
msgid ""
"/* Backward compatibility hacks */\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:139
+#: build/C/man5/utmp.5:140
msgid ""
"This structure gives the name of the special file associated with the user's "
"terminal, the user's login name, and the time of login in the form of "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:156
+#: build/C/man5/utmp.5:157
msgid ""
-"The first entries ever created result from B<init>(8) processing "
-"B<inittab>(5). Before an entry is processed, though, B<init>(8) cleans up "
+"The first entries ever created result from B<init>(1) processing "
+"B<inittab>(5). Before an entry is processed, though, B<init>(1) cleans up "
"utmp by setting I<ut_type> to B<DEAD_PROCESS>, clearing I<ut_user>, "
"I<ut_host>, and I<ut_time> with null bytes for each record which I<ut_type> "
"is not B<DEAD_PROCESS> or B<RUN_LVL> and where no process with PID I<ut_pid> "
"exists. If no empty record with the needed I<ut_id> can be found, "
-"B<init>(8) creates a new one. It sets I<ut_id> from the inittab, I<ut_pid> "
+"B<init>(1) creates a new one. It sets I<ut_id> from the inittab, I<ut_pid> "
"and I<ut_time> to the current values, and I<ut_type> to B<INIT_PROCESS>."
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:175
+#: build/C/man5/utmp.5:176
msgid ""
"B<mingetty>(8) (or B<agetty>(8)) locates the entry by the PID, changes "
"I<ut_type> to B<LOGIN_PROCESS>, changes I<ut_time>, sets I<ut_line>, and "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:181
+#: build/C/man5/utmp.5:182
msgid ""
-"When B<init>(8) finds that a process has exited, it locates its utmp entry "
+"When B<init>(1) finds that a process has exited, it locates its utmp entry "
"by I<ut_pid>, sets I<ut_type> to B<DEAD_PROCESS>, and clears I<ut_user>, "
"I<ut_host> and I<ut_time> with null bytes."
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:193
+#: build/C/man5/utmp.5:194
msgid ""
"B<xterm>(1) and other terminal emulators directly create a B<USER_PROCESS> "
"record and generate the I<ut_id> by using the string that suffix part of the "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:201
+#: build/C/man5/utmp.5:202
msgid ""
"B<telnetd>(8) sets up a B<LOGIN_PROCESS> entry and leaves the rest to "
"B<login>(1) as usual. After the telnet session ends, B<telnetd>(8) cleans "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:223
+#: build/C/man5/utmp.5:224
msgid ""
"The I<wtmp> file records all logins and logouts. Its format is exactly like "
"I<utmp> except that a null username indicates a logout on the associated "
"terminal. Furthermore, the terminal name B<~> with username B<shutdown> or "
"B<reboot> indicates a system shutdown or reboot and the pair of terminal "
"names B<|>/B<}> logs the old/new system time when B<date>(1) changes it. "
-"I<wtmp> is maintained by B<login>(1), B<init>(8), and some versions of "
+"I<wtmp> is maintained by B<login>(1), B<init>(1), and some versions of "
"B<getty>(8) (e.g., B<mingetty>(8) or B<agetty>(8)). None of these "
"programs creates the file, so if it is removed, record-keeping is turned "
"off."
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:225
+#: build/C/man5/utmp.5:226
msgid "/var/run/utmp"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:227
+#: build/C/man5/utmp.5:228
msgid "/var/log/wtmp"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:246
+#: build/C/man5/utmp.5:247
msgid ""
"POSIX.1 does not specify a I<utmp> structure, but rather one named I<utmpx>, "
"with specifications for the fields I<ut_type>, I<ut_pid>, I<ut_line>, "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:252
+#: build/C/man5/utmp.5:253
msgid ""
"Linux defines the I<utmpx> structure to be the same as the I<utmp> "
"structure."
msgstr ""
#. type: SS
-#: build/C/man5/utmp.5:252
+#: build/C/man5/utmp.5:253
#, no-wrap
-msgid "Comparison with Historical Systems"
+msgid "Comparison with historical systems"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:255
+#: build/C/man5/utmp.5:256
msgid ""
"Linux utmp entries conform neither to v7/BSD nor to System V; they are a mix "
"of the two."
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:262
+#: build/C/man5/utmp.5:263
msgid ""
"v7/BSD has fewer fields; most importantly it lacks I<ut_type>, which causes "
"native v7/BSD-like programs to display (for example) dead or login entries. "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:274
+#: build/C/man5/utmp.5:275
msgid ""
"In Linux (as in System V), the I<ut_id> field of a record will never change "
"once it has been set, which reserves that slot without needing a "
#. System V only uses the type field to mark them and logs
#. informative messages such as \fB"new time"\fP in the line field.
#. type: Plain text
-#: build/C/man5/utmp.5:279
+#: build/C/man5/utmp.5:280
msgid "System V has no I<ut_host> or I<ut_addr_v6> fields."
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:287
+#: build/C/man5/utmp.5:288
msgid ""
"Unlike various other systems, where utmp logging can be disabled by removing "
-"the file, utmp must always exist on Linux. If you want to disable B<who>(1) "
-"then do not make utmp world readable."
+"the file, utmp must always exist on Linux. If you want to disable "
+"B<who>(1), then do not make utmp world readable."
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:290
+#: build/C/man5/utmp.5:291
msgid ""
"The file format is machine-dependent, so it is recommended that it be "
"processed only on the machine architecture where it was created."
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:311
+#: build/C/man5/utmp.5:312
msgid ""
"Note that on I<biarch> platforms, that is, systems which can run both 32-bit "
"and 64-bit applications (x86-64, ppc64, s390x, etc.), I<ut_tv> is the same "
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:315
+#: build/C/man5/utmp.5:316
#, no-wrap
msgid "gettimeofday((struct timeval *) &ut.ut_tv, NULL);\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:319
+#: build/C/man5/utmp.5:320
msgid "the following method of setting this field is recommended:"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:324
+#: build/C/man5/utmp.5:325
#, no-wrap
msgid ""
"struct utmp ut;\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:328
+#: build/C/man5/utmp.5:329
#, no-wrap
msgid ""
"gettimeofday(&tv, NULL);\n"
msgstr ""
#. type: Plain text
-#: build/C/man5/utmp.5:335
-msgid ""
-"Note that the I<utmp> struct from libc5 has changed in libc6. Because of "
-"this, binaries using the old libc5 struct will corrupt I</var/run/utmp> "
-"and/or I</var/log/wtmp>."
-msgstr ""
-
-#. type: SH
-#: build/C/man5/utmp.5:335
-#, no-wrap
-msgid "BUGS"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man5/utmp.5:337
-msgid "This man page is based on the libc5 one, things may work differently now."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man5/utmp.5:350
+#: build/C/man5/utmp.5:352
msgid ""
-"B<ac>(1), B<date>(1), B<last>(1), B<login>(1), B<who>(1), B<getutent>(3), "
-"B<getutmp>(3), B<login>(3), B<logout>(3), B<logwtmp>(3), B<updwtmp>(3), "
-"B<init>(8)"
+"B<ac>(1), B<date>(1), B<last>(1), B<login>(1), B<utmpdump>(1), B<who>(1), "
+"B<getutent>(3), B<getutmp>(3), B<login>(3), B<logout>(3), B<logwtmp>(3), "
+"B<updwtmp>(3), B<init>(1)"
msgstr ""