# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2012-05-01 04:22+0900\n"
"PO-Revision-Date: 2012-05-07 22:45+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. type: TH
#: build/C/man3/getutent.3:30
#, no-wrap
msgid "GETUTENT"
msgstr "GETUTENT"

#. type: TH
#: build/C/man3/getutent.3:30
#, no-wrap
msgid "2008-06-29"
msgstr "2008-06-29"

#. 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
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr "Linux Programmer's Manual"

#. 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
#, no-wrap
msgid "NAME"
msgstr "名前"

#. type: Plain text
#: build/C/man3/getutent.3:34
msgid ""
"getutent, getutid, getutline, pututline, setutent, endutent, utmpname - "
"access utmp file entries"
msgstr ""
"getutent, getutid, getutline, pututline, setutent, endutent, utmpname - utmp "
"ファイルのエントリにアクセスする"

#. 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
#, 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
msgid "B<#include E<lt>utmp.hE<gt>>"
msgstr "B<#include E<lt>utmp.hE<gt>>"

#. type: Plain text
#: build/C/man3/getutent.3:38
msgid "B<struct utmp *getutent(void);>"
msgstr "B<struct utmp *getutent(void);>"

#. type: Plain text
#: build/C/man3/getutent.3:40
msgid "B<struct utmp *getutid(struct utmp *>I<ut>B<);>"
msgstr "B<struct utmp *getutid(struct utmp *>I<ut>B<);>"

#. type: Plain text
#: build/C/man3/getutent.3:42
msgid "B<struct utmp *getutline(struct utmp *>I<ut>B<);>"
msgstr "B<struct utmp *getutline(struct utmp *>I<ut>B<);>"

#. type: Plain text
#: build/C/man3/getutent.3:44
msgid "B<struct utmp *pututline(struct utmp *>I<ut>B<);>"
msgstr "B<struct utmp *pututline(struct utmp *>I<ut>B<);>"

#. type: Plain text
#: build/C/man3/getutent.3:46
msgid "B<void setutent(void);>"
msgstr "B<void setutent(void);>"

#. type: Plain text
#: build/C/man3/getutent.3:48
msgid "B<void endutent(void);>"
msgstr "B<void endutent(void);>"

#. type: Plain text
#: build/C/man3/getutent.3:50
msgid "B<int utmpname(const char *>I<file>B<);>"
msgstr "B<int utmpname(const char *>I<file>B<);>"

#. 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
#, no-wrap
msgid "DESCRIPTION"
msgstr "説明"

#. type: Plain text
#: build/C/man3/getutent.3:53
msgid ""
"New applications should use the POSIX.1-specified \"utmpx\" versions of "
"these functions; see CONFORMING TO."
msgstr ""
"新しいアプリケーションでは、これらの関数の \"utmpx\" 版を使用すべきである。 "
"これらは POSIX.1 で規定されている。「準拠」の節を参照。"

#. type: Plain text
#: build/C/man3/getutent.3:62
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 "
"before the other functions are used, they assume B<_PATH_UTMP>, as defined "
"in I<E<lt>paths.hE<gt>>."
msgstr ""
"B<utmpname>()  は、他の utmp 関数がアクセスする (utmp フォーマットの)  ファイ"
"ルの名前を指定する。他の関数を使う前に B<utmpname>()  を使って ファイル名の指"
"定を行わなかった場合は、 I<E<lt>path.hE<gt>> で 定義されている B<_PATH_UTMP> "
"がファイル名とみなされる。"

#. type: Plain text
#: build/C/man3/getutent.3:67
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 ""
"B<setutent>()  は、ファイルポインタを utmp ファイルの先頭に移動する。 一般的"
"には、他の関数を使う前にこの関数を呼び出しておくと良いだろう。"

#. type: Plain text
#: build/C/man3/getutent.3:72
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 ""
"B<endutent>()  は utmp ファイルをクローズする。ユーザーコードで 他の関数を"
"使ってこのファイルにアクセスを行った時は、最後にこの関数を 呼び出すべきであ"
"る。"

#. type: Plain text
#: build/C/man3/getutent.3:79
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 "
"line.  The definition of this structure is shown in B<utmp>(5)."
msgstr ""
"B<getutent>()  は utmp ファイルの現在のファイル位置から一行読み込み、 行の各"
"フィールドの内容を収めた構造体へのポインタを返す。 この構造体の定義は B<utmp>"
"(5)  に書かれている。"

#. type: Plain text
#: build/C/man3/getutent.3:95
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>, "
"B<BOOT_TIME>, B<NEW_TIME>, or B<OLD_TIME>, B<getutid>()  will find the first "
"entry whose I<ut_type> field matches I<ut-E<gt>ut_type>.  If I<ut-"
"E<gt>ut_type> is one of B<INIT_PROCESS>, B<LOGIN_PROCESS>, B<USER_PROCESS>, "
"or B<DEAD_PROCESS>, B<getutid>()  will find the first entry whose I<ut_id> "
"field matches I<ut-E<gt>ut_id>."
msgstr ""
"B<getutid>()  は、 utmp ファイル中の現在の位置から順方向 (末尾に向かう方向) "
"へ I<ut> に基く検索を行う。 I<ut>-E<gt>ut_type が B<RUN_LVL>, B<BOOT_TIME>, "
"B<NEW_TIME>, B<OLD_TIME> の いずれかなら、 B<getutid>()  は B<ut_type> フィー"
"ルドが I<ut>-E<gt>ut_type に一致する最初のエントリを探す。 I<ut>-"
"E<gt>ut_type が B<INIT_PROCESS>, B<LOGIN_PROCESS>, B<USER_PROCESS>, "
"B<DEAD_PROCESS> のいずれかなら、 B<getutid>()  は I<ut_id> フィールドが "
"I<ut>-E<gt>ut_id に 一致する最初のエントリを探す。"

#. type: Plain text
#: build/C/man3/getutent.3:105
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 "
"B<LOGIN_PROCESS> and returns the first one whose I<ut_line> field matches "
"I<ut-E<gt>ut_line>."
msgstr ""
"B<getutline>()  は、 utmp ファイルの現在の位置から末尾に向かって検索を行う。 "
"I<ut_type> が B<USER_PROCESS> または B<LOGIN_PROCESS> で、 I<ut_line> フィー"
"ルドが I<ut>-E<gt>ut_line にマッチする最初の行を返す。"

#. type: Plain text
#: build/C/man3/getutent.3:117
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 "
"new entry.  If it cannot find an appropriate slot for I<ut>, B<pututline>()  "
"will append the new entry to the end of the file."
msgstr ""
"B<pututline>()  は I<utmp> 構造体 I<ut> の内容を utmp ファイルに書き出す。 "
"B<pututline>()  は B<getutid>()  を用いて、新たなエントリを 挿入するのにふさ"
"わしい場所を探す。 I<ut> を挿入するふさわしい場所が 見つからない場合は、新た"
"なエントリをファイルの末尾に追加する。"

#. type: SH
#: build/C/man3/getutent.3:117 build/C/man3/getutmp.3:49
#: build/C/man3/login.3:87
#, no-wrap
msgid "RETURN VALUE"
msgstr "返り値"

#. type: Plain text
#: build/C/man3/getutent.3:126
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 "
"not found\" case).  This I<struct utmp> is allocated in static storage, and "
"may be overwritten by subsequent calls."
msgstr ""
"B<getutent>(), B<getutid>(), B<getutline>()  は、成功すると I<struct utmp> へ"
"のポインタを返す。 失敗すると NULL を返す (レコードが見つからなかった場合も失"
"敗となる)。 この I<struct utmp> は静的な記憶領域に確保され、次にこれらの関数"
"を 呼び出した際に上書きされるかもしれない。"

#. type: Plain text
#: build/C/man3/getutent.3:132
msgid "On success B<pututline>()  returns I<ut>; on failure, it returns NULL."
msgstr "B<pututline>()  は成功すると I<ut> を返す。失敗すると NULL を返す。"

#. type: Plain text
#: build/C/man3/getutent.3:135
msgid ""
"B<utmpname>()  returns 0 if the new name was successfully stored, or -1 on "
"failure."
msgstr ""
"B<utmpname>()  は、新しい名前の格納に成功すると 0 を返し、失敗すると -1 を返"
"す。"

#. type: SH
#: build/C/man3/getutent.3:135
#, no-wrap
msgid "ERRORS"
msgstr "エラー"

#. type: TP
#: build/C/man3/getutent.3:136
#, no-wrap
msgid "B<ENOMEM>"
msgstr "B<ENOMEM>"

#. type: Plain text
#: build/C/man3/getutent.3:139
msgid "Out of memory."
msgstr "メモリ不足。"

#. type: TP
#: build/C/man3/getutent.3:139
#, no-wrap
msgid "B<ESRCH>"
msgstr "B<ESRCH>"

#. type: Plain text
#: build/C/man3/getutent.3:142
msgid "Record not found."
msgstr "レコードが見つからなかった。"

#. type: Plain text
#: build/C/man3/getutent.3:149
msgid ""
"B<setutent>(), B<pututline>(), and the B<getut* ()> functions can also fail "
"for the reasons described in B<open>(2)."
msgstr ""
"関数 B<setutent>(), B<pututline>(), B<getut*>()  は B<open>(2)  に書かれてい"
"る理由でも失敗することがある。"

#. 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
#, no-wrap
msgid "FILES"
msgstr "ファイル"

#. type: Plain text
#: build/C/man3/getutent.3:151
msgid "/var/run/utmp\tdatabase of currently logged-in users"
msgstr "/var/run/utmp 現在ログイン中のユーザーのデータベース"

#. type: Plain text
#: build/C/man3/getutent.3:153
msgid "/var/log/wtmp\tdatabase of past user logins"
msgstr "/var/log/wtmp 過去のユーザーログインのデータベース"

#. 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
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"

#. type: Plain text
#: build/C/man3/getutent.3:155
msgid "XPG2, SVr4."
msgstr "XPG2, SVr4."

#. type: Plain text
#: build/C/man3/getutent.3:165
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)."
msgstr ""
"XPG2 と SVID 2 では、 B<pututline>()  関数は値を返さないとされており、 (AIX, "
"HP-UX, Linux libc5 などの) 多くのシステムではそうなっている。 HP-UX では、上"
"述の B<pututline>()  と同じプロトタイプを持つ 新しい関数 B<_pututline>()  が"
"導入されている (この関数は Linux libc5 にもある)。"

#. type: Plain text
#: build/C/man3/getutent.3:169
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 ""
"現在では、Linux 以外のシステムでは、これらの関数は全て廃止されている。 SUSv1 "
"の後に出てきた POSIX.1-2001 では、もはやこれらの関数はなく、 代わりに以下のも"
"のを使う。"

#. type: Plain text
#: build/C/man3/getutent.3:171
msgid "B<#include E<lt>utmpx.hE<gt>>"
msgstr "B<#include E<lt>utmpx.hE<gt>>"

#. type: Plain text
#: build/C/man3/getutent.3:173
msgid "B<struct utmpx *getutxent(void);>"
msgstr "B<struct utmpx *getutxent(void);>"

#. type: Plain text
#: build/C/man3/getutent.3:175
msgid "B<struct utmpx *getutxid(const struct utmpx *);>"
msgstr "B<struct utmpx *getutxid(const struct utmpx *);>"

#. type: Plain text
#: build/C/man3/getutent.3:177
msgid "B<struct utmpx *getutxline(const struct utmpx *);>"
msgstr "B<struct utmpx *getutxline(const struct utmpx *);>"

#. type: Plain text
#: build/C/man3/getutent.3:179
msgid "B<struct utmpx *pututxline(const struct utmpx *);>"
msgstr "B<struct utmpx *pututxline(const struct utmpx *);>"

#. type: Plain text
#: build/C/man3/getutent.3:181
msgid "B<void setutxent(void);>"
msgstr "B<void setutxent(void);>"

#. type: Plain text
#: build/C/man3/getutent.3:183
msgid "B<void endutxent(void);>"
msgstr "B<void endutxent(void);>"

#. type: Plain text
#: build/C/man3/getutent.3:192
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 "
"be the same as I<struct utmp>.  For completeness, glibc also provides "
"B<utmpxname>(), although this function is not specified by POSIX.1."
msgstr ""
"これらの関数は glibc により提供されており、 \"x\" がない関数と同じ処理を行う"
"が、 I<struct utmpx> を使用する。 Linux では、この構造体の定義は I<struct "
"utmp> と同じになっている。 完全を期すために、glibc では B<utmpxname>()  も提"
"供している。この関数は POSIX.1 では規定されていない。"

#. type: Plain text
#: build/C/man3/getutent.3:200
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 "
"fields, and parallel files are maintained, often I</var/*/utmpx> and I</var/"
"*/wtmpx>."
msgstr ""
"Linux 以外のシステムでは、 I<utmpx> 構造体は I<utmp> 構造体の上位集合 "
"(superset) になっていて、 追加のフィールドがあったり、既存のフィールドのサイ"
"ズが大きくなっていたり するものもある。複数のファイルが使用されている場合もあ"
"り、多くの場合 I</var/*/utmpx> と I</var/*/wtmpx> というファイルが使われる。"

#. type: Plain text
#: build/C/man3/getutent.3:205
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."
msgstr ""
"一方、 Linux glibc では複数の I<utmpx> ファイル は使われていない。 I<utmp> 構"
"造体が十分に大きいからである。 I<getutxent>() などの関数は I<getutent>() など"
"の別名となっている。"

#. 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
#, no-wrap
msgid "NOTES"
msgstr "注意"

#. type: SS
#: build/C/man3/getutent.3:206
#, no-wrap
msgid "Glibc Notes"
msgstr "glibc での注意"

#. type: Plain text
#: build/C/man3/getutent.3:209
msgid "The above functions are not thread-safe.  Glibc adds reentrant versions"
msgstr ""
"上記の関数群はスレッド・セーフではない。 glibc にはリエントラント版 "
"(reentrant) が追加されている。"

#. type: Plain text
#: build/C/man3/getutent.3:214
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE>    /* or _SVID_SOURCE or _BSD_SOURCE;\n"
"\\&                          see B<feature_test_macros(7)> */\n"
"B<#include E<lt>utmp.hE<gt>>\n"
msgstr ""
"B<#define _GNU_SOURCE>    /* or _SVID_SOURCE or _BSD_SOURCE;\n"
"\\&                          B<feature_test_macros(7)> 参照 */\n"
"B<#include E<lt>utmp.hE<gt>>\n"

#. type: Plain text
#: build/C/man3/getutent.3:216
#, no-wrap
msgid "B<int getutent_r(struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"
msgstr "B<int getutent_r(struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"

#. type: Plain text
#: build/C/man3/getutent.3:219
#, no-wrap
msgid ""
"B<int getutid_r(struct utmp *>I<ut>B<,>\n"
"B<              struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"
msgstr ""
"B<int getutid_r(struct utmp *>I<ut>B<,>\n"
"B<              struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"

#. type: Plain text
#: build/C/man3/getutent.3:222
#, no-wrap
msgid ""
"B<int getutline_r(struct utmp *>I<ut>B<,>\n"
"B<                struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"
msgstr ""
"B<int getutline_r(struct utmp *>I<ut>B<,>\n"
"B<                struct utmp *>I<ubuf>B<, struct utmp **>I<ubufp>B<);>\n"

#. type: Plain text
#: build/C/man3/getutent.3:234
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 "
"are no utmpx equivalents of the above functions.  (POSIX.1 does not specify "
"such functions.)"
msgstr ""
"これらの関数は GNU での拡張であり、末尾の _r をとった名前の関数と 同様の機能"
"を持つ。 I<ubuf> パラメータは結果を格納する場所を指定する。 成功すると 0 を返"
"し、結果へのポインタを I<*ubufp> に書き込む。エラーの場合 -1 を返す。 上記の"
"関数に対応する utmpx 版は存在しない (POSIX.1 ではこれらの関数を規定されていな"
"い)。"

#. type: SH
#: build/C/man3/getutent.3:234
#, no-wrap
msgid "EXAMPLE"
msgstr "例"

#. type: Plain text
#: build/C/man3/getutent.3:242
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 "
"check the return values of B<getpwuid>(3)  and B<ttyname>(3)."
msgstr ""
"以下の例では、 utmp のレコードの追加・削除を行っている。このコードは、 擬似端"
"末 (pseudo terminal) から実行されることを想定している。 実際のアプリケーショ"
"ンでは B<getpwuid>(3)  と B<ttyname>(3)  の戻り値を検査するべきである。"

#. type: Plain text
#: build/C/man3/getutent.3:249
#, no-wrap
msgid ""
"#include E<lt>string.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>pwd.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>utmp.hE<gt>\n"
msgstr ""
"#include E<lt>string.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>pwd.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>utmp.hE<gt>\n"

#. type: Plain text
#: build/C/man3/getutent.3:254
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
"    struct utmp entry;\n"
msgstr ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
"    struct utmp entry;\n"

#. type: Plain text
#: build/C/man3/getutent.3:256
#, no-wrap
msgid "    system(\"echo before adding entry:;who\");\n"
msgstr "    system(\"echo before adding entry:;who\");\n"

#. type: Plain text
#: build/C/man3/getutent.3:268
#, no-wrap
msgid ""
"    entry.ut_type = USER_PROCESS;\n"
"    entry.ut_pid = getpid();\n"
"    strcpy(entry.ut_line, ttyname(STDIN_FILENO) + strlen(\"/dev/\"));\n"
"    /* only correct for ptys named /dev/tty[pqr][0-9a-z] */\n"
"    strcpy(entry.ut_id, ttyname(STDIN_FILENO) + strlen(\"/dev/tty\"));\n"
"    time(&entry.ut_time);\n"
"    strcpy(entry.ut_user, getpwuid(getuid())-E<gt>pw_name);\n"
"    memset(entry.ut_host, 0, UT_HOSTSIZE);\n"
"    entry.ut_addr = 0;\n"
"    setutent();\n"
"    pututline(&entry);\n"
msgstr ""
"    entry.ut_type = USER_PROCESS;\n"
"    entry.ut_pid = getpid();\n"
"    strcpy(entry.ut_line, ttyname(STDIN_FILENO) + strlen(\"/dev/\"));\n"
"    /* only correct for ptys named /dev/tty[pqr][0-9a-z] */\n"
"    strcpy(entry.ut_id, ttyname(STDIN_FILENO) + strlen(\"/dev/tty\"));\n"
"    time(&entry.ut_time);\n"
"    strcpy(entry.ut_user, getpwuid(getuid())-E<gt>pw_name);\n"
"    memset(entry.ut_host, 0, UT_HOSTSIZE);\n"
"    entry.ut_addr = 0;\n"
"    setutent();\n"
"    pututline(&entry);\n"

#. type: Plain text
#: build/C/man3/getutent.3:270
#, no-wrap
msgid "    system(\"echo after adding entry:;who\");\n"
msgstr "    system(\"echo after adding entry:;who\");\n"

#. type: Plain text
#: build/C/man3/getutent.3:277
#, no-wrap
msgid ""
"    entry.ut_type = DEAD_PROCESS;\n"
"    memset(entry.ut_line, 0, UT_LINESIZE);\n"
"    entry.ut_time = 0;\n"
"    memset(entry.ut_user, 0, UT_NAMESIZE);\n"
"    setutent();\n"
"    pututline(&entry);\n"
msgstr ""
"    entry.ut_type = DEAD_PROCESS;\n"
"    memset(entry.ut_line, 0, UT_LINESIZE);\n"
"    entry.ut_time = 0;\n"
"    memset(entry.ut_user, 0, UT_NAMESIZE);\n"
"    setutent();\n"
"    pututline(&entry);\n"

#. type: Plain text
#: build/C/man3/getutent.3:279
#, no-wrap
msgid "    system(\"echo after removing entry:;who\");\n"
msgstr "    system(\"echo after removing entry:;who\");\n"

#. type: Plain text
#: build/C/man3/getutent.3:283
#, no-wrap
msgid ""
"    endutent();\n"
"    exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
"    endutent();\n"
"    exit(EXIT_SUCCESS);\n"
"}\n"

#. 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
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"

#. type: Plain text
#: build/C/man3/getutent.3:287
msgid "B<getutmp>(3), B<utmp>(5)"
msgstr "B<getutmp>(3), B<utmp>(5)"

#. 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
#, 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
msgid ""
"This page is part of release 3.40 of the Linux I<man-pages> project.  A "
"description of the project, and information about reporting bugs, can be "
"found at http://www.kernel.org/doc/man-pages/."
msgstr ""
"この man ページは Linux I<man-pages> プロジェクトのリリース 3.40 の一部\n"
"である。プロジェクトの説明とバグ報告に関する情報は\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"

#. type: TH
#: build/C/man3/getutmp.3:24
#, no-wrap
msgid "GETUTMP"
msgstr "GETUTMP"

#. type: TH
#: build/C/man3/getutmp.3:24
#, no-wrap
msgid "2010-09-10"
msgstr "2010-09-10"

#. type: TH
#: build/C/man3/getutmp.3:24 build/C/man5/utmp.5:29
#, no-wrap
msgid "Linux"
msgstr "Linux"

#. type: Plain text
#: build/C/man3/getutmp.3:27
msgid "getutmp, getutmpx - copy utmp structure to utmpx, and vice versa"
msgstr "getutmp, getutmpx - utmp 構造体から utmpx 構造体、その逆のコピーを行う"

#. type: Plain text
#: build/C/man3/getutmp.3:31
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
"B<#include E<lt>utmpx.hE<gt>>\n"
msgstr ""
"B<#define _GNU_SOURCE>             /* feature_test_macros(7) 参照 */\n"
"B<#include E<lt>utmpx.hE<gt>>\n"

#. type: Plain text
#: build/C/man3/getutmp.3:34
#, no-wrap
msgid ""
"B< void getutmp(const struct utmpx *>I<ux>B<, struct utmp *>I<u>B<);>\n"
"B< void getutmpx(const struct utmp *>I<u>B<, struct utmpx *>I<ux>B<);>\n"
msgstr ""
"B< void getutmp(const struct utmpx *>I<ux>B<, struct utmp *>I<u>B<);>\n"
"B< void getutmpx(const struct utmp *>I<u>B<, struct utmpx *>I<ux>B<);>\n"

#. type: Plain text
#: build/C/man3/getutmp.3:49
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 "
"pointed to by I<u>.  The B<getutmpx>()  function performs the converse "
"operation."
msgstr ""
"B<getutmp>() 関数は、 I<ux> が指す I<utmpx> 構造体の各フィールドを、\n"
"I<u> が指す I<utmp> 構造体の対応するフィールドにコピーする。\n"
"B<getutmpx>() 関数は逆の操作を行う。"

#. type: Plain text
#: build/C/man3/getutmp.3:51
msgid "These functions do not return a value."
msgstr "これらの関数は値を返さない。"

#. type: SH
#: build/C/man3/getutmp.3:51
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"

#. type: Plain text
#: build/C/man3/getutmp.3:53
msgid "These functions first appeared in glibc in version 2.1.1."
msgstr "これらの関数は glibc バージョン 2.1.1 で初めて登場した。"

#. type: Plain text
#: build/C/man3/getutmp.3:56
msgid ""
"These functions are nonstandard, but appear on a few other systems, such as "
"Solaris and NetBSD."
msgstr ""
"これらの関数は非標準である。\n"
"Linux 以外にも、これらの関数が存在するシステムもいくつかある\n"
"(Solaris や NetBSD など)。"

#.  e.g., on Solaris, the utmpx structure is rather larger than utmp.
#. type: Plain text
#: build/C/man3/getutmp.3:67
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 "
"corresponding fields differs.  On Linux, the two structures contain the same "
"fields, and the fields have the same sizes."
msgstr ""
"これらの関数が存在する一番の目的は、\n"
"I<utmp> 構造体と I<utmpx> 構造体が異なるフィールドを持たり、\n"
"対応するフィールドの大きさが異なっている、他のシステムとの\n"
"互換性のためである。\n"
"Linux では、これらの構造体は同じフィールドを持っており、\n"
"各フィールドのサイズも同じである。"

#. type: Plain text
#: build/C/man3/getutmp.3:70 build/C/man3/login.3:126
msgid "B<getutent>(3), B<utmp>(5)"
msgstr "B<getutent>(3), B<utmp>(5)"

#. type: TH
#: build/C/man3/login.3:24
#, no-wrap
msgid "LOGIN"
msgstr "LOGIN"

#. type: TH
#: build/C/man3/login.3:24
#, no-wrap
msgid "2004-05-06"
msgstr "2004-05-06"

#. type: TH
#: build/C/man3/login.3:24 build/C/man3/updwtmp.3:23
#, no-wrap
msgid "GNU"
msgstr "GNU"

#. type: Plain text
#: build/C/man3/login.3:27
msgid "login, logout - write utmp and wtmp entries"
msgstr "login, logout - utmp と wtmp エントリを書き込む"

#. type: Plain text
#: build/C/man3/login.3:31
msgid "B<void login(const struct utmp *>I<ut>B<);>"
msgstr "B<void login(const struct utmp *>I<ut>B<);>"

#. type: Plain text
#: build/C/man3/login.3:33
msgid "B<int logout(const char *>I<ut_line>B<);>"
msgstr "B<int logout(const char *>I<ut_line>B<);>"

#. type: Plain text
#: build/C/man3/login.3:35
msgid "Link with I<-lutil>."
msgstr "I<-lutil> でリンクする。"

#. type: Plain text
#: build/C/man3/login.3:40
msgid ""
"The utmp file records who is currently using the system.  The wtmp file "
"records all logins and logouts.  See B<utmp>(5)."
msgstr ""
"utmp ファイルは現在システムを使用しているユーザを記録する。 wtmp ファイルはす"
"べてのログインとログアウトを記録する。 B<utmp>(5)  を参照すること。"

#. type: Plain text
#: build/C/man3/login.3:46
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 ""
"関数 B<login>()  は与えられた I<struct utmp> I<ut> を utmp と wtmp ファイルの"
"両方に書き込む。"

#. type: Plain text
#: build/C/man3/login.3:50
msgid "The function B<logout>()  clears the entry in the utmp file again."
msgstr "関数 B<logout>()  は utmp ファイルにあるエントリをクリアする。"

#. type: SS
#: build/C/man3/login.3:50
#, no-wrap
msgid "GNU Details"
msgstr "GNU 版の詳細"

#. type: Plain text
#: build/C/man3/login.3:71
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 "
"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 "
"filled with \"???\" and the struct is not written to the utmp file.  After "
"this, the struct is written to the wtmp file."
msgstr ""
"より正確には、 B<login>()  は引き数 I<ut> 構造体をとり、(もし存在するならば) "
"フィールド I<ut-E<gt>ut_type> を B<USER_PROCESS> という値にし、(もし存在する"
"ならば) フィールド I<ut-E<gt>ut_pid> を呼び出し元プロセスのプロセス ID の値に"
"する。 次にフィールド I<ut-E<gt>ut_line> の値を設定しようとする。 この関数"
"は、標準入力・標準出力・標準エラー出力の中から 端末 (tty) である最初のものを"
"とり、 対応するパス名から先頭の I</dev/> を引いたものを このフィールドに格納"
"して、この構造体を utmp ファイルに書き込む。 一方、端末名が見つからない場合"
"は、このフィールドは \"???\" とされて、 この構造体は utmp ファイルに書き込ま"
"れない。 その後にこの構造体は wtmp ファイルに書き込まれる。"

#. type: Plain text
#: build/C/man3/login.3:87
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 "
"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 B<DEAD_PROCESS>."
msgstr ""
"B<logout>()  関数は utmp ファイルから I<ut_line> 引き数にマッチするエントリを"
"探す。 レコードが見つかった場合、 I<ut_name> と I<ut_host> フィールドをクリア"
"して、 I<ut_tv> タイムスタンプフィールドを更新し、 (もし存在するならば)  "
"I<ut_type> フィールドを B<DEAD_PROCESS> に更新する。"

#. type: Plain text
#: build/C/man3/login.3:92
msgid ""
"The B<logout>()  function returns 1 if the entry was successfully written to "
"the database, or 0 if an error occurred."
msgstr ""
"エントリをデータベースに書き込むのに成功した場合、 B<logout>()  関数は 1 を返"
"す。 またエラーが起こった場合、0 を返す。"

#. type: TP
#: build/C/man3/login.3:93
#, no-wrap
msgid "I</var/run/utmp>"
msgstr "I</var/run/utmp>"

#. type: Plain text
#: build/C/man3/login.3:99
msgid ""
"user accounting database, configured through B<_PATH_UTMP> in I<E<lt>paths."
"hE<gt>>"
msgstr ""
"ユーザアカウントデータベース。 I<E<lt>paths.hE<gt>> における B<_PATH_UTMP> で"
"設定されている。"

#. type: TP
#: build/C/man3/login.3:99 build/C/man3/updwtmp.3:49
#, no-wrap
msgid "I</var/log/wtmp>"
msgstr "I</var/log/wtmp>"

#. type: Plain text
#: build/C/man3/login.3:105
msgid ""
"user accounting log file, configured through B<_PATH_WTMP> in I<E<lt>paths."
"hE<gt>>"
msgstr ""
"ユーザアカウントログファイル。 I<E<lt>paths.hE<gt>> における B<_PATH_WTMP> で"
"設定されている。"

#. type: Plain text
#: build/C/man3/login.3:108
msgid "Not in POSIX.1-2001.  Present on the BSDs."
msgstr "POSIX.1-2001 にはない。 BSD 系に存在する。"

#. type: Plain text
#: build/C/man3/login.3:123
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 ""
"I<struct utmp> のメンバ I<ut_user> は、BSD では I<ut_name> という名前である点"
"に注意すること。 そのため I<ut_name> は I<E<lt>utmp.hE<gt>> において "
"I<ut_user> のエイリアスとして定義されている。"

#. type: TH
#: build/C/man3/updwtmp.3:23
#, no-wrap
msgid "UPDWTMP"
msgstr "UPDWTMP"

#. type: TH
#: build/C/man3/updwtmp.3:23
#, no-wrap
msgid "2008-07-02"
msgstr "2008-07-02"

#. type: Plain text
#: build/C/man3/updwtmp.3:26
msgid "updwtmp, logwtmp - append an entry to the wtmp file"
msgstr "updwtmp, logwtmp - wtmp ファイルにエントリを追加する"

#. type: Plain text
#: build/C/man3/updwtmp.3:29
#, no-wrap
msgid "B<#include E<lt>utmp.hE<gt>>\n"
msgstr "B<#include E<lt>utmp.hE<gt>>\n"

#. type: Plain text
#: build/C/man3/updwtmp.3:31
#, no-wrap
msgid "B<void updwtmp(const char *>I<wtmp_file>B<, const struct utmp *>I<ut>B<);>\n"
msgstr "B<void updwtmp(const char *>I<wtmp_file>B<, const struct utmp *>I<ut>B<);>\n"

#. type: Plain text
#: build/C/man3/updwtmp.3:34
#, no-wrap
msgid "B<void logwtmp(const char *>I<line>B<, const char *>I<name>B<, const char *>I<host>B<);>\n"
msgstr "B<void logwtmp(const char *>I<line>B<, const char *>I<name>B<, const char *>I<host>B<);>\n"

#. type: Plain text
#: build/C/man3/updwtmp.3:40
msgid "B<updwtmp>()  appends the utmp structure I<ut> to the wtmp file."
msgstr "B<updwtmp>()  は、utmp 構造体 I<ut> を wtmp ファイルに追加する。"

#. type: Plain text
#: build/C/man3/updwtmp.3:48
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 "
"the structure to the wtmp file."
msgstr ""
"B<logwtmp>()  は、 I<line>, I<name>, I<host>, 現在時刻、現プロセスID から "
"utmp 構造体を作り、 B<updwtmp>()  を呼び出してその構造体を wtmp ファイルに追"
"加する。"

#. type: Plain text
#: build/C/man3/updwtmp.3:52
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 ""
"POSIX.1-2001 にはない。 Solaris, NetBSD に存在し、おそらく他のシステムにもあ"
"るだろう。"

#. 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.)"
msgstr ""
"glibc2 の下ではどちらの関数も利用可能である。 libc5 の下ではどちらも使えない"
"が、 B<logwtmp>()  は古い libbsd にあった。 最近では、 B<logwtmp>()  関数は "
"libutil に含まれている (したがって、この関数を使うためにはコンパイラのコマン"
"ドラインに I<-lutil> を追加する必要がある)。"

#. type: Plain text
#: build/C/man3/updwtmp.3:69
msgid ""
"For consistency with the other \"utmpx\" functions (see B<getutxent>(3)), "
"glibc provides (since version 2.1):"
msgstr ""
"他の \"utmpx\" 関数群 (B<getutxent>(3)  参照) との一貫性のために、glibc (バー"
"ジョン 2.1 以降) は以下の関数を 提供している:"

#. type: Plain text
#: build/C/man3/updwtmp.3:72
#, no-wrap
msgid "B<#include E<lt>utmpx.hE<gt>>\n"
msgstr "B<#include E<lt>utmpx.hE<gt>>\n"

#. type: Plain text
#: build/C/man3/updwtmp.3:74
#, no-wrap
msgid "B<void updwtmpx (const char *>I<wtmpx_file>B<, const struct utmpx *>I<utx>B<);>\n"
msgstr "B<void updwtmpx (const char *>I<wtmpx_file>B<, const struct utmpx *>I<utx>B<);>\n"

#. type: Plain text
#: build/C/man3/updwtmp.3:81
msgid ""
"This function performs the same task as B<updwtmp>(), but differs in that it "
"takes a I<utmpx> structure as its last argument."
msgstr ""
"この関数は B<updwtmp>()  と同じ作業を行うが、最後の引き数として I<utmpx> 構造"
"体を取るところが異なる。"

#. type: Plain text
#: build/C/man3/updwtmp.3:84
msgid "B<getutxent>(3), B<wtmp>(5)"
msgstr "B<getutxent>(3), B<wtmp>(5)"

#. type: TH
#: build/C/man5/utmp.5:29
#, no-wrap
msgid "UTMP"
msgstr "UTMP"

#. type: TH
#: build/C/man5/utmp.5:29
#, no-wrap
msgid "2011-09-28"
msgstr "2011-09-28"

#. type: Plain text
#: build/C/man5/utmp.5:32
msgid "utmp, wtmp - login records"
msgstr "utmp, wtmp - ログイン記録"

#. type: Plain text
#: build/C/man5/utmp.5:41
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, "
"because not all programs use utmp logging."
msgstr ""
"I<utmp> ファイルを見ることで、現在誰がシステムを使っているかという情報 が得ら"
"れる。ただすべてのプログラムが utmp ファイルを 更新しているわけではないので、"
"実際にはそれ以上のユーザーが システムを使っている可能性がある。"

#. type: Plain text
#: build/C/man5/utmp.5:51
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 "
"faked system logfiles and modifications of system files if you leave I<utmp> "
"writable to any user other than the owner and group owner of the file."
msgstr ""
"B<警告:> (愚かにも) 多くのシステムプログラムがその整合性に依存しているので、 "
"I<utmp> ファイルは \"other\" に分類されるユーザに対して 書き込み可能にしては"
"ならない。 ファイルの所有者とグループオーナー以外のユーザに対して I<utmp> "
"ファイルを書き込み可能な状態にしておくと、 システムのログファイルを偽造された"
"り、システムファイルの 改ざんを受けるといったリスクを犯すことになる。"

#. type: Plain text
#: build/C/man5/utmp.5:59
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 "
"around; details depend on the version of libc):"
msgstr ""
"このファイルは I<utmp> 構造体の繰り返しで構成される。 この構造体は "
"I<E<lt>utmp.hE<gt>> で以下のように定義されている (ここに記述してあるのは幾つ"
"かの大まかな定義のみで、 詳細は libc のバージョンにより変わることに注意が必要"
"である)。"

#. type: Plain text
#: build/C/man5/utmp.5:63
#, no-wrap
msgid "/* Values for ut_type field, below */\n"
msgstr "/* Values for ut_type field, below */\n"

#. type: Plain text
#: build/C/man5/utmp.5:78
#, no-wrap
msgid ""
"#define EMPTY         0 /* Record does not contain valid info\n"
"                           (formerly known as UT_UNKNOWN on Linux) */\n"
"#define RUN_LVL       1 /* Change in system run-level (see\n"
"                           B<init>(8)) */\n"
"#define BOOT_TIME     2 /* Time of system boot (in I<ut_tv>) */\n"
"#define NEW_TIME      3 /* Time after system clock change\n"
"                           (in I<ut_tv>) */\n"
"#define OLD_TIME      4 /* Time before system clock change\n"
"                           (in I<ut_tv>) */\n"
"#define INIT_PROCESS  5 /* Process spawned by B<init>(8) */\n"
"#define LOGIN_PROCESS 6 /* Session leader process for user login */\n"
"#define USER_PROCESS  7 /* Normal process */\n"
"#define DEAD_PROCESS  8 /* Terminated process */\n"
"#define ACCOUNTING    9 /* Not implemented */\n"
msgstr ""
"#define EMPTY         0 /* Record does not contain valid info\n"
"                           (formerly known as UT_UNKNOWN on Linux) */\n"
"#define RUN_LVL       1 /* Change in system run-level (see\n"
"                           B<init>(8)) */\n"
"#define BOOT_TIME     2 /* Time of system boot (in I<ut_tv>) */\n"
"#define NEW_TIME      3 /* Time after system clock change\n"
"                           (in I<ut_tv>) */\n"
"#define OLD_TIME      4 /* Time before system clock change\n"
"                           (in I<ut_tv>) */\n"
"#define INIT_PROCESS  5 /* Process spawned by B<init>(8) */\n"
"#define LOGIN_PROCESS 6 /* Session leader process for user login */\n"
"#define USER_PROCESS  7 /* Normal process */\n"
"#define DEAD_PROCESS  8 /* Terminated process */\n"
"#define ACCOUNTING    9 /* Not implemented */\n"

#. type: Plain text
#: build/C/man5/utmp.5:82
#, no-wrap
msgid ""
"#define UT_LINESIZE      32\n"
"#define UT_NAMESIZE      32\n"
"#define UT_HOSTSIZE     256\n"
msgstr ""
"#define UT_LINESIZE      32\n"
"#define UT_NAMESIZE      32\n"
"#define UT_HOSTSIZE     256\n"

#. type: Plain text
#: build/C/man5/utmp.5:87
#, no-wrap
msgid ""
"struct exit_status {              /* Type for ut_exit, below */\n"
"    short int e_termination;      /* Process termination status */\n"
"    short int e_exit;             /* Process exit status */\n"
"};\n"
msgstr ""
"struct exit_status {              /* Type for ut_exit, below */\n"
"    short int e_termination;      /* Process termination status */\n"
"    short int e_exit;             /* Process exit status */\n"
"};\n"

#. type: Plain text
#: build/C/man5/utmp.5:115
#, no-wrap
msgid ""
"struct utmp {\n"
"    short   ut_type;              /* Type of record */\n"
"    pid_t   ut_pid;               /* PID of login process */\n"
"    char    ut_line[UT_LINESIZE]; /* Device name of tty - \"/dev/\" */\n"
"    char    ut_id[4];             /* Terminal name suffix,\n"
"                                     or inittab(5) ID */\n"
"    char    ut_user[UT_NAMESIZE]; /* Username */\n"
"    char    ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or\n"
"                                     kernel version for run-level\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"
"    /* 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"
"#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32\n"
"    int32_t ut_session;           /* Session ID (B<getsid>(2)),\n"
"                                     used for windowing */\n"
"    struct {\n"
"        int32_t tv_sec;           /* Seconds */\n"
"        int32_t tv_usec;          /* Microseconds */\n"
"    } ut_tv;                      /* Time entry was made */\n"
"#else\n"
"     long   ut_session;           /* Session ID */\n"
"     struct timeval ut_tv;        /* Time entry was made */\n"
"#endif\n"
msgstr ""
"struct utmp {\n"
"    short   ut_type;              /* Type of record */\n"
"    pid_t   ut_pid;               /* PID of login process */\n"
"    char    ut_line[UT_LINESIZE]; /* Device name of tty - \"/dev/\" */\n"
"    char    ut_id[4];             /* Terminal name suffix,\n"
"                                     or inittab(5) ID */\n"
"    char    ut_user[UT_NAMESIZE]; /* Username */\n"
"    char    ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or\n"
"                                     kernel version for run-level\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"
"    /* ut_session と ut_tv フィールドは、32ビットでコンパイルされた場合と\n"
"       64ビットでコンパイルされた場合で同じサイズでなければならない。\n"
"       こうすることで、32ビットと64ビットのアプリケーションで、\n"
"       データファイルと共有メモリを共有することができるようになる。 */\n"
"#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32\n"
"    int32_t ut_session;           /* Session ID (B<getsid>(2)),\n"
"                                     used for windowing */\n"
"    struct {\n"
"        int32_t tv_sec;           /* Seconds */\n"
"        int32_t tv_usec;          /* Microseconds */\n"
"    } ut_tv;                      /* Time entry was made */\n"
"#else\n"
"     long   ut_session;           /* Session ID */\n"
"     struct timeval ut_tv;        /* Time entry was made */\n"
"#endif\n"

#. type: Plain text
#: build/C/man5/utmp.5:121
#, no-wrap
msgid ""
"    int32_t ut_addr_v6[4];        /* Internet address of remote\n"
"                                     host; IPv4 address uses\n"
"                                     just ut_addr_v6[0] */\n"
"    char __unused[20];            /* Reserved for future use */\n"
"};\n"
msgstr ""
"    int32_t ut_addr_v6[4];        /* Internet address of remote\n"
"                                     host; IPv4 address uses\n"
"                                     just ut_addr_v6[0] */\n"
"    char __unused[20];            /* Reserved for future use */\n"
"};\n"

#. type: Plain text
#: build/C/man5/utmp.5:129
#, no-wrap
msgid ""
"/* Backward compatibility hacks */\n"
"#define ut_name ut_user\n"
"#ifndef _NO_UT_TIME\n"
"#define ut_time ut_tv.tv_sec\n"
"#endif\n"
"#define ut_xtime ut_tv.tv_sec\n"
"#define ut_addr ut_addr_v6[0]\n"
msgstr ""
"/* Backward compatibility hacks */\n"
"#define ut_name ut_user\n"
"#ifndef _NO_UT_TIME\n"
"#define ut_time ut_tv.tv_sec\n"
"#endif\n"
"#define ut_xtime ut_tv.tv_sec\n"
"#define ut_addr ut_addr_v6[0]\n"

#. type: Plain text
#: build/C/man5/utmp.5:139
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 B<time>"
"(2).  String fields are terminated by a null byte (\\(aq\\e0\\(aq)  if they "
"are shorter than the size of the field."
msgstr ""
"この構造体からユーザーの使っている端末のスペシャルファイル名、 ユーザーのログ"
"イン名、 (B<time>(2)  形式での)ログイン時刻がわかる。文字列フィールドは、 "
"フィールドの長さより文字列が短い場合には、 NULL バイト (\\(aq\\e0\\(aq) に"
"よって終端される。"

#. type: Plain text
#: build/C/man5/utmp.5:156
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 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> and "
"I<ut_time> to the current values, and I<ut_type> to B<INIT_PROCESS>."
msgstr ""
"最初のエントリは B<init>(8)  コマンドが B<inittab>(5)  を処理することで作られ"
"る。 あるエントリを処理する前に、 B<init>(8)  は I<ut_type> を "
"B<DEAD_PROCESS> に初期化する。 レコードの I<ut_type> が B<DEAD_PROCESS> と "
"B<RUN_LVL> のいずれでもなく、 かつ PID が I<ut_pid> であるプロセスがいない場"
"合は、I<ut_user>, I<ut_host>, I<ut_time> をヌルバイトでクリアして初期化を行"
"う。 必要な I<ut_id> を持つ空のレコードを見つけられなかった場合、 B<init>"
"(8)  は新しいレコードを作る。inittab から I<ut_id> を設定し、 I<ut_pid> およ"
"び I<ut_time> を現在値に、 I<ut_type> を B<INIT_PROCESS> に設定する。"

#. type: Plain text
#: build/C/man5/utmp.5:175
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 "
"waits for connection to be established.  B<login>(1), after a user has been "
"authenticated, changes I<ut_type> to B<USER_PROCESS>, changes I<ut_time>, "
"and sets I<ut_host> and I<ut_addr>.  Depending on B<mingetty>(8)  (or "
"B<agetty>(8))  and B<login>(1), records may be located by I<ut_line> instead "
"of the preferable I<ut_pid>."
msgstr ""
"B<mingetty>(8)  (または B<agetty>(8))  は pid でエントリを特定し、 "
"I<ut_type> を B<LOGIN_PROCESS> に変更し、 I<ut_time> を更新し、I<ut_line>を設"
"定した後、接続が確立されるのを待つ。 B<login>(1)  はユーザー認証が終了する"
"と、 I<ut_type> を B<USER_PROCESS> に変更し、 I<ut_time> を更新し、"
"I<ut_host> と I<ut_addr>を設定する。 B<mingetty>(8)  (または B<agetty>(8))  "
"と B<login>(1)  により異なるが、 I<ut_pid> の代わりに I<ut_line> を使ってレ"
"コードの特定が行われることもある (I<ut_pid> を使う方が望ましい) 。"

#. type: Plain text
#: build/C/man5/utmp.5:181
msgid ""
"When B<init>(8)  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 ""
"B<init>(8)  はプロセスの終了を検出した場合、 I<ut_pid> をキーとして utmp のエ"
"ントリを特定し、 I<ut_type> を B<DEAD_PROCESS> に設定し、 I<ut_user>, "
"I<ut_host>, I<ut_time> をヌルバイトでクリアする。"

#. type: Plain text
#: build/C/man5/utmp.5:193
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 "
"terminal name (the characters following I</dev/[pt]ty>).  If they find a "
"B<DEAD_PROCESS> for this ID, they recycle it, otherwise they create a new "
"entry.  If they can, they will mark it as B<DEAD_PROCESS> on exiting and it "
"is advised that they null I<ut_line>, I<ut_time>, I<ut_user>, and I<ut_host> "
"as well."
msgstr ""
"B<xterm>(1)  コマンドや他の端末エミュレータは 直接 B<USER_PROCESS> のレコード"
"を作り、 端末名のサフィックス文字列 (I</dev/[pt]ty> に続く文字列)  を使って "
"I<ut_id> の値を生成する。 この id を持つエントリが B<DEAD_PROCESS> であった場"
"合には再利用し、 それ以外の場合には新しいエントリが作られる。 可能な場合には"
"プロセス終了時に B<DEAD_PROCESS> と設定し、 さらに I<ut_line>, I<ut_time>, "
"I<ut_user>, I<ut_host> をヌルバイトでクリアすることが奨励されている。"

#. type: Plain text
#: build/C/man5/utmp.5:201
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 "
"up utmp in the described way."
msgstr ""
"B<telnetd>(8)  は B<LOGIN_PROCESS> を設定するだけでよく、 残りの処理は通常通"
"り B<login>(1)  に任せればよい。 telnet のセッションが終了した後、前述のよう"
"に B<telnetd>(8)  が utmp のエントリを初期化する。"

#. type: Plain text
#: build/C/man5/utmp.5:223
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 "
"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 ""
"I<wtmp> ファイルには、すべてのログインとログアウトが記録される。 そのフォー"
"マットは、ログアウト済の端末でユーザー名がヌルとなること以外は I<utmp> とまっ"
"たく同じである。 ユーザー名が B<shutdown> もしくは B<reboot> である 端末名 "
"B<~> はシステムの停止 (shutdown) または再起動 (reboot)  を意味する。またその"
"端末名が B<|> と B<}> の対は B<date>(1)  コマンドで変更した新／旧のシステム時"
"刻を記録している。 I<wtmp> ファイルは B<login>(1), B<init>(8)  やいくつかの"
"バージョンの B<getty>(8)  (B<mingetty>(8)  または B<agetty>(8))  により管理さ"
"れている。 これらのプログラムはどれもファイルを新たに作成しないので、 ファイ"
"ルを削除することで情報の記録 (record-keeping) を止めることができる。"

#. type: Plain text
#: build/C/man5/utmp.5:225
msgid "/var/run/utmp"
msgstr "/var/run/utmp"

#. type: Plain text
#: build/C/man5/utmp.5:227
msgid "/var/log/wtmp"
msgstr "/var/log/wtmp"

#. type: Plain text
#: build/C/man5/utmp.5:246
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>, "
"I<ut_id>, I<ut_user>, and I<ut_tv>.  POSIX.1 does not specify the lengths of "
"the I<ut_line> and I<ut_user> fields."
msgstr ""
"POSIX.1 では、 I<utmp> 構造体ではなく、 I<utmpx> 構造体を規定している。 "
"I<utmpx> 構造体で規定されているのは、フィールド I<ut_type>, I<ut_pid>, "
"I<ut_line>, I<ut_id>, I<ut_user>, I<ut_tv> である。 POSIX.1 では、フィールド "
"I<ut_line> と I<ut_user> の長さは規定されていない。"

#. type: Plain text
#: build/C/man5/utmp.5:252
msgid ""
"Linux defines the I<utmpx> structure to be the same as the I<utmp> structure."
msgstr "Linux では、 I<utmpx> 構造体の定義は I<utmp> 構造体と同じである。"

#. type: SS
#: build/C/man5/utmp.5:252
#, no-wrap
msgid "Comparison with Historical Systems"
msgstr "過去のシステムとの比較"

#. type: Plain text
#: build/C/man5/utmp.5:255
msgid ""
"Linux utmp entries conform neither to v7/BSD nor to System V; they are a mix "
"of the two."
msgstr ""
"Linux での utmp のエントリは v7/BSD や System V のいずれにも準拠しておらず、 "
"その両方が混在したものである。"

#. type: Plain text
#: build/C/man5/utmp.5:262
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.  "
"Further, there is no configuration file which allocates slots to sessions.  "
"BSD does so because it lacks I<ut_id> fields."
msgstr ""
"v7/BSD ではより少しの項目しかない; もっとも重要なことは、I<ut_type> が無いこ"
"とである。 そのため v7/BSD 系のプログラムでは (たとえば) 死んだ状態のエントリ"
"や ログイン状態のエントリまで表示されてしまうことになった。 さらにセッション"
"用のスロットを割り当てるための設定ファイルがない。 BSD に設定ファイルがあるの"
"は I<ut_id> がないからである。"

#. type: Plain text
#: build/C/man5/utmp.5:274
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 "
"configuration file.  Clearing I<ut_id> may result in race conditions leading "
"to corrupted utmp entries and potential security holes.  Clearing the "
"abovementioned fields by filling them with null bytes is not required by "
"System V semantics, but makes it possible to run many programs which assume "
"BSD semantics and which do not modify utmp.  Linux uses the BSD conventions "
"for line contents, as documented above."
msgstr ""
"Linux (System V 系)では、設定ファイルを必要とせず セッション用のスロットを割"
"り当てるので、一旦設定 されてしまうとレコードの I<ut_id> は決して変更されな"
"い。 I<ut_id> をクリアすると競合状態におちいり、 utmp のエントリを壊したり、"
"潜在的なセキュリティホールになる可能性がある。 上述のフィールドを NULL バイト"
"で埋めてクリアしておくのは、 System V での取り決めでは必要とはされていない"
"が、 BSD での取り決めを前提としていて、かつ utmp を更新しない多くのプログラム"
"が 動作するようにするためである。 Linux ではここまで記述してきたように、行内"
"容の表示は BSD の慣例に従っている。"

#.  mtk: What is the referrent of "them" in the following sentence?
#.  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
msgid "System V has no I<ut_host> or I<ut_addr_v6> fields."
msgstr ""
"B<UT_UNKNOWN> は Linux で作られたもののようである。 System V には I<ut_host> "
"も I<ut_addr_v6> も存在しない。"

#. type: Plain text
#: build/C/man5/utmp.5:287
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."
msgstr ""
"ファイルを削除することで utmp への記録を止められる 他の様々なシステムとは違"
"い、Linux では utmp ファイルを必ずおいて おく必要がある。 B<who>(1)  コマンド"
"が機能しないようにしたい場合には、 utmp ファイルの全ユーザーに対する読み取り"
"許可を設定しないようにする。"

#. type: Plain text
#: build/C/man5/utmp.5:290
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
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 "
"size in 32-bit mode as in 64-bit mode.  The same goes for I<ut_session> and "
"I<ut_time> if they are present.  This allows data files and shared memory to "
"be shared between 32-bit and 64-bit applications.  This is achieved by "
"changing the type of I<ut_session> to I<int32_t>, and that of I<ut_tv> to a "
"struct with two I<int32_t> fields I<tv_sec> and I<tv_usec>.  Since I<ut_tv> "
"may not be the same as I<struct timeval>, then instead of the call:"
msgstr ""
"注意すべき点としては、 I<biarch> なプラットフォーム、つまり 32ビットと 64ビッ"
"トの両方の アプリケーションを実行できるシステム (x86-64, ppc64, s390x など) "
"では、 I<ut_tv> のサイズは 32ビットモードと 64ビットモードで同じである。 "
"I<ut_session> と I<ut_time> も、存在する場合には同様に同じサイズ である。これ"
"により、32ビットアプリケーションと 64ビットアプリケーション の間でデータファ"
"イルと共有メモリを共有することが可能になる。 そのためには、 I<ut_session> を "
"I<int32_t> 型に、 I<ut_tv> を 2つの I<int32_t> 型のフィールド I<tv_sec>, "
"I<tv_usec> を持つ構造体に変更すればよい I<ut_tv> は I<struct timeval> と同じ"
"サイズとは限らないので、"

#. type: Plain text
#: build/C/man5/utmp.5:315
#, no-wrap
msgid "gettimeofday((struct timeval *) &ut.ut_tv, NULL);\n"
msgstr "gettimeofday((struct timeval *) &ut.ut_tv, NULL);\n"

#. type: Plain text
#: build/C/man5/utmp.5:319
msgid "the following method of setting this field is recommended:"
msgstr ""
"のような呼び出しをするのではなく、 以下のように各フィールドを設定する方法が推"
"奨される:"

#. type: Plain text
#: build/C/man5/utmp.5:324
#, no-wrap
msgid ""
"struct utmp ut;\n"
"struct timeval tv;\n"
msgstr ""
"struct utmp ut;\n"
"struct timeval tv;\n"

#. type: Plain text
#: build/C/man5/utmp.5:328
#, no-wrap
msgid ""
"gettimeofday(&tv, NULL);\n"
"ut.ut_tv.tv_sec = tv.tv_sec;\n"
"ut.ut_tv.tv_usec = tv.tv_usec;\n"
msgstr ""
"gettimeofday(&tv, NULL);\n"
"ut.ut_tv.tv_sec = tv.tv_sec;\n"
"ut.ut_tv.tv_usec = tv.tv_usec;\n"

#. 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 ""
"utmp 構造体は libc5 から libc6 で変更された。そのため昔の libc5 の構造体 を"
"使ったプログラムは I</var/run/utmp> や I</var/log/wtmp> ファイルを壊してしま"
"う。"

#. 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 ""
"この man ページは libc5 に基づいて作られていて、 最新のものでは違っているかも"
"しれない。"

#. type: Plain text
#: build/C/man5/utmp.5:350
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)"
msgstr ""
"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)"
