GETPWENT(3) — UNIX Programmer’s Manual
名称
getpwent, getpwgid, getpwnam, setpwent, endpwent, setpwfile − パスワードファイルのエントリを得る
形式
#include <pwd.h>
struct passwd ∗getpwuid(uid)
int uid;
struct passwd ∗getpwnam(name)
char ∗name;
struct passwd ∗getpwent()
setpwent()
endpwent()
setpwfile(name)
char ∗name;
解説
Getpwent および getpwuid、 getpwnam はそれぞれ、 次のような構造を 持つ構造体へのポインタを 返します。 構造体は、 パスワードファイルの中の 1行を いくつかに区切ったフィールドを 含んでいます。
/∗pwp.h4.183/05/03∗/
struct passwd{/∗ getpwent(3)を参照のこと ∗/
char∗pw_name;
char∗pw_passwd;
intpw_uid;
intpw_gid;
intpw_quota;
char∗pw_comment;
char∗pw_gecos;
char∗pw_dir;
char∗pw_shell;
};
struct passwd ∗getpwent(), ∗getpwuid(), ∗getpwnam();
pw_quata と pw_comment のフィールドは使用されていません。 それ以外は、 passwd(5) で説明されています。
パスワードファイルの検索は、 ndbm というデータベースのアクセスルーチンを 使用して行われます。 setpwent はデータベースを オープンします。 endpwent はこれを クローズします。 getpwuid と getpwnam は、 データベースを 検索して(必要ならオープンして)、 マッチする uid または name を 捜します。 エントリがない場合には、 EOF が返されます。
データベース全体を 読み込みたいプログラムでは、 getpwent は(必要ならばデータベースを オープンして)次の行を 読み込みます。 データベースのオープンに加えて、 getpwent がその検索を データベースの先頭から始めることができるよう、 setpwent を 使用することができます。
setpwfile は、 デフォルトのパスワードファイルを name に変更します。 したがって、 別のパスワードファイルを 使用することができます。 以前のファイルはクローズ しません ので注意してください。 クローズしたければ、 この前に endpwent を 呼び出す必要があります。
関連ファイル
/etc/passwd
関連事項
getlogin(3), getgrent(3), passwd(5)
診断
getpwent、 getpwuid、 getpwnam、 ルーチンでは、 EOFまたはエラーのときに、 ナルポインタ(0)が返されます。
バグ
すべての情報は、 静的領域の中に含まれているため、 セーブしようとする場合には、 コピーしなければなりません。
NEWS-OSRelease 3.3