GETNETGRENT(3) | FreeBSD Library Functions Manual | GETNETGRENT(3) |
名称
getnetgrent, innetgr, setnetgrent, endnetgrent — netgroup データベースの操作ライブラリ
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 |