EN JA
GETNETGRENT(3)
GETNETGRENT(3) FreeBSD Library Functions Manual GETNETGRENT(3)

名称

getnetgrent, innetgr, setnetgrent, endnetgrentnetgroup データベースの操作

ライブラリ

Standard C Library (libc, -lc)

書式

#include < netdb.h>

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) に説明されている netgroup データベースファイル /etc/netgroup で動作します。データベースは、それぞれ、1 つ以上の次の 3 つ組で構成されている、 1 組の netgroup を定義しています:

(host, user, domain)

それは、ホスト、ユーザとドメインの組み合わせを定義しています。 3 つのフィールドのいずれも、あらゆる文字列に一致する ``ワイルドカード'' として指定できます。

関数 getnetgrent() は、現在の netgroup の次のメンバの文字列への 3 つのポインタ引数を設定します。文字列ポインタのいずれかが (char *)0 であるなら、そのフィールドは、ワイルドカードと見なされます。

関数 setnetgrent() と endnetgrent() は、それぞれ、現在の netgroup を設定し、現在の netgroup を終了します。 setnetgrent() が前の呼び出しとは異なっている netgroup で呼び出されるなら、暗黙で endnetgrent() も呼び出されます。また、 setnetgrent() 関数は、netgroup の最初のメンバへのオフセットを設定します。

関数 innetgr() は、指定されたグループ内のすべてのフィールドの一致を検索します。 host, user または domain 引数のいずれかが (char *)0 であるなら、それらのフィールドは、netgroup メンバのあらゆる文字列の値に一致します。

戻り値

関数 getnetgrent() は、``これ以上 netgroup メンバがない`` に対して 0 を返し、そうでなければ、1 を返します。関数 innetgr() は、成功した一致に対して 1 を返し、そうでなければ、0 を返します。関数 setnetgrent() と endnetgrent() には、返り値がありません。

関連ファイル

/etc/netgroup
netgroup データベースファイル

互換性

netgroup メンバは、他のベンダの実装との互換性を維持するために 3 つの文字列フィールドがありますが、 BSD 内にある domain 文字列が何の役に立つかは、明白ではありません。

関連項目

netgroup(5)

バグ

関数 getnetgrent() は、関数 endnetgrent() が呼び出されるとき、解放される、動的に割り付けられたデータ領域へのポインタを返します。
June 4, 1993 FreeBSD