Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getlogin(3)

getgrent(3)

passwd(5)

ypserv(8)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026