GETPWENT
Section: Linux Programmer's Manual (3)
Updated: 2007-07-26
Index
JM Home Page
roff page
名前
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
説明
getpwent()
関数は、パスワード・データベースから取得したエントリを
要素毎に分解し、各要素を格納した構造体へのポインタを返す
(パスワード・データベースの例:
ローカルのパスワードファイル
/etc/passwd,
NIS, LDAP)。
最初に呼び出された時は最初のエントリを返し、それ以降は
呼び出される毎に次のエントリを返す。
setpwent()
関数を使うと、パスワード・データベースの先頭に戻る。
endpwent()
関数は、全ての処理が終わった後にパスワード・
データベースをクローズする。
passwd 構造体は <pwd.h> で以下のように定義されている:
-
struct passwd {
char *pw_passwd; /* ユーザのパスワード */
uid_t pw_uid; /* ユーザ ID */
gid_t pw_gid; /* グループ ID */
char *pw_gecos; /* 実名 */
char *pw_dir; /* ホームディレクトリ */
char *pw_shell; /* シェルプログラム */
};
返り値
getpwent()
関数は
passwd
構造体へのポインタを返す。
これ以上エントリが無いか、エラーが発生した場合は NULL を返す。
エラーが発生すると、
errno
が適切に設定される。
この関数の呼び出し後に
errno
をチェックしたい場合は、呼び出し前に
errno
を 0 に設定しておかないといけない。
エラー
- EINTR
-
シグナルが捕捉された。
- EIO
-
入出力エラー。
- EMFILE
-
呼び出し元プロセスがオープンされているファイル数が
すでに上限
(OPEN_MAX)
であった。
- ENFILE
-
システムでオープンされているファイル数がすでに上限であった。
- ENOMEM
-
passwd 構造体に割り当てるメモリが十分なかった。
- ERANGE
-
十分なバッファ空間がない。
ファイル
- /etc/passwd
-
ローカルのパスワード・データベースファイル
準拠
SVr4, 4.3BSD, POSIX.1-2001.
関連項目
fgetpwent(3),
getpw(3),
getpwent_r(3),
getpwnam(3),
getpwuid(3),
putpwent(3),
passwd(5)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- ファイル
-
- 準拠
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:43 GMT, November 19, 2007