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