Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       setnetgrent,  endnetgrent, getnetgrent, getnetgrent_r, innetgr - ネットワークグループのエントリーを操作す
       る

書式

       #include <netdb.h>

       int setnetgrent(const char *netgroup);

       void endnetgrent(void);

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

       int getnetgrent_r(char **host, char **user,
                         char **domain, char *buf, size_t buflen);

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

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       setnetgrent(), endnetgrent(), getnetgrent(), getnetgrent_r(), innetgr():
           glibc 2.19 以降:
               _DEFAULT_SOURCE
           glibc 2.19 以前:
               _BSD_SOURCE || _SVID_SOURCE

説明

       netgroup は SunOS で考案されたものである。ネットグループのデータベースの エントリーは、 3  つの文字列のリ
       スト  (hostname, username, domainname)  もしくはネットグループ名である。 前記のリストの各要素は空であって
       もよい。 空は何とでも一致することを意味する。  本ページで説明する関数を使うことで、ネットグループのデータ
       ベースに アクセスすることができる。どのデータベースが検索されるかは /etc/nsswitch.conf ファイルで定義され
       ている。

       setnetgrent()    コールは、この後で呼ばれる    getnetgrent()     コールが検索するネットグループを定める。
       getnetgrent()   関数はネットグループの次のエントリーを取得し、  host, user, domain にポインターを入れて返
       る。ヌルポインターは、対応するエントリーがどんな文字列とも一致することを意味する。     得られたポインター
       は、ネットグループ関係の関数のいずれかが呼ばれるまでの  間だけ有効である。この問題を避けるためには GNU 拡
       張の関数 getnetgrent_r()  を使うとよい。この関数は呼び出し側が用意したバッファーに 文字列を格納する。割り
       当て済のバッファーを全て解放するには endnetgrent()  を使用する。

       ほとんどの場合、 (hostname, username, domainname) の3要素の組がネットグループのメンバーかどうかを確認した
       いだけであろう。 innetgr() 関数を使うと、上記の3つの関数を呼び出さずにこの目的を達成できる。 もう一度書い
       ておくが、NULL  ポインターはワイルドカードであり、 あらゆる文字列と一致する。この関数はスレッドセーフであ
       る。

返り値

       これらの関数は成功すると 1 を、失敗すると 0 を返す。

ファイル

       /etc/netgroup
       /etc/nsswitch.conf

属性

       この節で使用されている用語の説明は attributes(7) を参照のこと。

       ┌─────────────────┬───────────────┬─────────────────────────┐
       │InterfaceAttributeValue                   │
       ├─────────────────┼───────────────┼─────────────────────────┤
       │setnetgrent(),   │ Thread safety │ MT-Unsafe race:netgrent │
       │getnetgrent_r(), │               │ locale                  │
       │innetgr()        │               │                         │
       ├─────────────────┼───────────────┼─────────────────────────┤
       │endnetgrent()    │ Thread safety │ MT-Unsafe race:netgrent │
       ├─────────────────┼───────────────┼─────────────────────────┤
       │getnetgrent()    │ Thread safety │ MT-Unsafe race:netgrent │
       │                 │               │ race:netgrentbuf locale │
       └─────────────────┴───────────────┴─────────────────────────┘
       In the above table, netgrent in race:netgrent signifies that  if  any  of  the  functions  setnetgrent(),
       getnetgrent_r(), innetgr(), getnetgrent(), or endnetgrent()  are used in parallel in different threads of
       a program, then data races could occur.

準拠

       これらの関数は POSIX.1 にはないが、 setnetgrent (), endnetgrent (), getnetgrent (), innetgr ()   はほとん
       どの UNIX システムで利用可能である。 getnetgrent_r() は広く他のシステムで利用できるわけではない。

注意

       BSD の実装では setnetgrent()  は void を返す。

関連項目

       sethostent(3), setprotoent(3), setservent(3)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。