スポンサーリンク

GETNETGRENT(3) FreeBSD ライブラリ関数マニュアル GETNETGRENT(3)

名称

getnetgrent, innetgr, setnetgrent, endnetgrent − ネットグループデータベー スの操作

書式

int

getnetgrent(char **host, char **user, char **domain);

int

innetgr(const char *netgroup, const char *host, const char *user, const char *domain);

void

setnetgrent(const char *netgroup);

void

endnetgrent(void);

解説

これらの関数はいずれも、 netgroup(5) に記述されたネットグループデータベー スのファイル /etc/netgroup を操作します。データベースはネットグループの集 合を定義しますが、ネットグループはぞれぞれ、1 つまたは複数の次のような 3 つ組で構成されます。

      (host, user, domain)

それぞれ、ホスト、ユーザおよびドメインの組み合わせを定義します。 3 つの フィールドのどれにも、あらゆるストリングに適合する ‘’ワイルドカード’ を指 定可能です。

関数 getnetgrent() は、現在のネットグループの次のメンバの、文字列に対する 3 つのポインタ引数を設定します。文字列ポインタのどれかが (char *)0 だと、 そのフィールドはワイルドカードと見なされます。

関数 setnetgrent() は現在のネットグループを設定し、 endnetgrent() は現在 のネットグループを終了します。前の呼び出しとは違うネットグループに対して setnetgrent() が呼び出された場合、暗黙に endnetgrent() が実行されます。 setnetgrent() はまた、ネットグループの最初のメンバのオフセットを設定しま す。

関数 innetgr() は適合するものがあるかどうか、指定したグループにあるすべて のフィールドを検索します。 host user domain 引数のどれかが (char *)0 の場 合、そのフィールドは指定されたネットグループメンバのあらゆる文字列値に適 合します。

戻り値

関数 getnetgrent() は ‘‘それ以上ネットグループメンバがない’’ 場合には 0 を返し、その他の場合は 1 を返します。関数 innetgr() は、適合するフィール ドがあった場合は 1 を、その他の場合は 0 を返します。関数 setnetgrent() お よび endnetgrent() には戻り値がありません。

関連ファイル

       /etc/netgroup

ネットグループデータベースファイル

関連項目

netgroup(5)

互換性

ネットグループメンバには、他のベンダによる実装との互換性を維持するために 3 つの文字列フィールドがありますが、 domain 文字列の BSD 内での使用法が明 らかではありません。

バグ

関数 getnetgrent() は、動的に割り振られたデータ領域のポインタを返します が、関数 endnetgrent() が呼び出されるとそのデータ領域は解放されます。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク