GETPWENT(3) — NEWS-OS Programmer’s Manual
名称
getpwent, getpwuid, getpwnam, setpwent, endpwent, setpwfile, fgetpwent − パスワードファイルのエントリを得る
形式
#include <pwd.h>
struct passwd ∗getpwuid(uid)
int uid;
struct passwd ∗getpwnam(name)
char ∗name;
struct passwd ∗getpwent()
setpwent()
endpwent()
setpwfile(name)
char ∗name;
struct passwd ∗fgetpwent(f)
FILE ∗f;
解説
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 を 捜します。 エントリがない場合には、 NULL ポインタが返されます。
データベース全体を 読み込みたいプログラムでは、 getpwent は (必要ならばデータベースを オープンして) 次の行を 読み込みます。 データベースのオープンに加えて、 setpwent を 使用して、 getpwent がその検索を データベースの先頭から始めることができます。
setpwfile は、 デフォルトのパスワードファイルを name に変更します。 したがって、 別のパスワードファイルを 使用することができます。 以前のファイルはクローズ しない ので注意してください。 クローズしたければ、 その前に endpwent を 呼び出す必要があります。
fgetpwent は、ストリーム f の 次の passwd 構造体へのポインタを返します。 ストリームは、 パスワードファイル /etc/passwd のフォーマットにマッチしていなければいけません。
関連ファイル
/etc/passwd
関連事項
getlogin(3), getgrent(3), passwd(5) ypserv(8)
診断
getpwent、 getpwuid、 getpwnam、 ルーチンでは、 EOF またはエラーのときに、 ナルポインタ (0) が返されます。
バグ
すべての情報は、 静的領域の中に含まれているため、 セーブしようとする場合には、 コピーしなければなりません。
NEWS-OSRelease 4.2.1R