名 前
getpwent, setpwent, endpwent − パ ス ワ ー ド フ ァ イ ル の エ ン ト リ ー の 取 得
書 式
#include
<sys/types.h>
#include <pwd.h>
struct passwd *getpwent(void);
void setpwent(void);
void endpwent(void);
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
getpwent(), setpwent(), endpwent():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
説 明
getpwent() 関 数 は 、 パ ス ワ ー ド デ ー タ ベ ー ス か ら 取 得 し た エ ン ト リ ー を 要 素 毎 に 分 解 し 、 各 要 素 を 格 納 し た 構 造 体 へ の ポ イ ン タ ー を 返 す (パ ス ワ ー ド デ ー タ ベ ー ス の 例 : ロ ー カ ル の パ ス ワ ー ド フ ァ イ ル /etc/passwd, NIS, LDAP)。 getpwent() は 、 最 初 に 呼 び 出 さ れ た 時 は 最 初 の エ ン ト リ ー を 返 し 、 そ れ 以 降 は 呼 び 出 さ れ る 毎 に 次 の エ ン ト リ ー を 返 す 。
setpwent() 関 数 を 使 う と 、 パ ス ワ ー ド デ ー タ ベ ー ス の 先 頭 に 戻 る 。
endpwent() 関 数 は 、 全 て の 処 理 が 終 わ っ た 後 に パ ス ワ ー ド デ ー タ ベ ー ス を ク ロ ー ズ す る 。
passwd 構 造 体 は 、 <pwd.h> で 以 下 の よ う に 定 義 さ れ て い る :
struct passwd {
char *pw_name; /* ユ ー ザ ー
名 */
char *pw_passwd; /* ユ ー ザ ー
の パ ス ワ ー ド */
uid_t pw_uid; /* ユ ー ザ ー ID */
gid_t pw_gid; /* グ ル ー プ ID */
char *pw_gecos; /* ユ ー ザ ー
情 報 */
char *pw_dir; /* ホ ー ム デ
ィ レ ク ト リ */
char *pw_shell; /* シ ェ ル プ
ロ グ ラ ム */ }; こ の
構 造 体 の フ ィ
ー ル ド の 詳 細
は passwd(5) を 参 照
の こ と 。
返 り 値
getpwent() 関 数 は passwd 構 造 体 へ の ポ イ ン タ ー を 返 す 。 こ れ 以 上 エ ン ト リ ー が 無 い か 、 エ ラ ー が 発 生 し た 場 合 は NULL を 返 す 。 エ ラ ー が 発 生 す る と 、 errno が 適 切 に 設 定 さ れ る 。 こ の 関 数 の 呼 び 出 し 後 に errno を チ ェ ッ ク し た い 場 合 は 、 呼 び 出 し 前 に errno を 0 に 設 定 し て お か な い と い け な い 。 返 り 値 は 静 的 な 領 域 を 指 し て お り 、 そ の 後 の getpwent(), getpwnam(3), getpwuid(3) の 呼 び 出 し で 上 書 き さ れ る か も し れ な い 。 (返 さ れ た ポ イ ン タ ー を free(3) に 渡 さ な い こ と 。 )
エ ラ ー
EINTR シ グ ナ ル が 捕 捉 さ れ た 。 |
||
EIO |
I/O エ ラ ー 。
EMFILE 呼 び 出 し 元 プ ロ セ ス が オ ー プ ン し て い る フ ァ イ ル 数 が す で に 上 限 |
(OPEN_MAX) で あ っ た 。
ENFILE シ ス テ ム で オ ー プ ン さ れ て い る フ ァ イ ル 数 が す で に 上 限 で あ っ た 。 | |
ENOMEM |
passwd 構 造 体 に 割 り 当 て る メ モ リ ー が 十 分 な か っ た 。
ERANGE 与 え ら れ た バ ッ フ ァ ー 空 間 が 不 十 分 で あ る 。 |
フ ァ イ ル
/etc/passwd ロ ー カ ル の パ ス ワ ー ド デ ー タ ベ ー ス フ ァ イ ル
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )
getpwent() 関 数 は ス レ ッ ド セ ー フ で は な い 。 関 数 setpwent() と endpwent() は ス レ ッ ド セ ー フ で あ る 。
準 拠
SVr4, 4.3BSD, POSIX.1−2001. pw_gecos フ ィ ー ル ド は POSIX で は 規 定 さ れ て い な い が 、 ほ と ん ど の 実 装 に 存 在 す る 。
関 連 項 目
fgetpwent(3), getpw(3), getpwent_r(3), getpwnam(3), getpwuid(3), putpwent(3), passwd(5)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。