名 前
login, logout − utmp と wtmp エ ン ト リ ー を 書 き 込 む
書 式
#include <utmp.h>
void login(const struct utmp *ut);
int logout(const char *ut_line);
−lutil で リ ン ク す る 。
説 明
utmp フ ァ イ ル は 現 在 シ ス テ ム を 使 用 し て い る ユ ー ザ ー を 記 録 す る 。 wtmp フ ァ イ ル は す べ て の ロ グ イ ン と ロ グ ア ウ ト を 記 録 す る 。 utmp(5) を 参 照 す る こ と 。 関 数 login() は 与 え ら れ た struct utmp ut を utmp と wtmp フ ァ イ ル の 両 方 に 書 き 込 む 。 関 数 logout() は utmp フ ァ イ ル に あ る エ ン ト リ ー を ク リ ア す る 。
GNU 版 の 詳 細 よ り 正 確 に は 、 login() は 引 き 数 ut 構 造 体 を と り 、 (も し 存 在 す る な ら ば ) フ ィ ー ル ド ut−>ut_type を USER_PROCESS と い う 値 に し 、 (も し 存 在 す る な ら ば ) フ ィ ー ル ド ut−>ut_pid を 呼 び 出 し 元 プ ロ セ ス の プ ロ セ ス ID の 値 に す る 。 次 に フ ィ ー ル ド ut−>ut_line の 値 を 設 定 し よ う と す る 。 こ の 関 数 は 、 標 準 入 力 ・ 標 準 出 力 ・ 標 準 エ ラ ー 出 力 の 中 か ら 端 末 で あ る 最 初 の も の を と り 、 対 応 す る パ ス 名 か ら 先 頭 の /dev/ を 引 い た も の を こ の フ ィ ー ル ド に 格 納 し て 、 こ の 構 造 体 を utmp フ ァ イ ル に 書 き 込 む 。 一 方 、 端 末 名 が 見 つ か ら な い 場 合 は 、 こ の フ ィ ー ル ド は "???" と さ れ て 、 こ の 構 造 体 は utmp フ ァ イ ル に 書 き 込 ま れ な い 。 そ の 後 に こ の 構 造 体 は wtmp フ ァ イ ル に 書 き 込 ま れ る 。
logout() 関 数 は utmp フ ァ イ ル か ら ut_line 引 き 数 に マ ッ チ す る エ ン ト リ ー を 探 す 。 レ コ ー ド が 見 つ か っ た 場 合 、 ut_name と ut_host フ ィ ー ル ド を ク リ ア し て 、 ut_tv タ イ ム ス タ ン プ フ ィ ー ル ド を 更 新 し 、 (も し 存 在 す る な ら ば ) ut_type フ ィ ー ル ド を DEAD_PROCESS に 更 新 す る 。
返 り 値
エ ン ト リ ー を デ ー タ ベ ー ス に 書 き 込 む の に 成 功 し た 場 合 、 logout() 関 数 は 1 を 返 す 。 ま た エ ラ ー が 起 こ っ た 場 合 、 0 を 返 す 。
フ ァ イ ル
/var/run/utmp
ユ ー ザ ー ア カ
ウ ン ト デ ー タ
ベ ー ス 。 <paths.h>
に お け る _PATH_UTMP
で 設 定 さ れ て
い る 。
/var/log/wtmp ユ ー ザ ー
ア カ ウ ン ト ロ
グ フ ァ イ ル 。
<paths.h> に お け る
_PATH_WTMP で 設 定 さ
れ て い る 。
準 拠
POSIX.1−2001 に は な い 。 BSD 系 に 存 在 す る 。
注 意
struct utmp の メ ン バ ut_user は 、 BSD で は ut_name と い う 名 前 で あ る 点 に 注 意 す る こ と 。 そ の た め ut_name は <utmp.h> に お い て ut_user の エ イ リ ア ス と し て 定 義 さ れ て い る 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。