plucky (3) getaliasbyname.3.gz

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

名前

       setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r - エイリアスエント
       リーを読み込む

書式

       #include <aliases.h>

       void setaliasent(void);

       void endaliasent(void);

       struct aliasent *getaliasent(void);

       int getaliasent_r(struct aliasent *result,
        char *buffer, size_t buflen, struct aliasent **res);

       struct aliasent *getaliasbyname(const char *name);

       int getaliasbyname_r(const char *name, struct aliasent *result,
        char *buffer, size_t buflen, struct aliasent **res);

説明

       ネームサービススイッチ (Name Service Switch, NSS) で 利用可能なデータベースの 1 つとして、 メールエイリア
       スを保持するエイリアスデータベースがある。  (どのデータベースがサポートされているかを調べるには、  getent
       --help を実行すること。)  エイリアスデータベースにアクセスするために、 6 つの関数が提供されている。

       getaliasent()  関数はエイリアスデータベースから取り出した  グループ情報を含む構造体へのポインターを返す。
       1 回目に関数が呼ばれたときには、最初のエントリーを返す; それ以降はその後のエントリーを返す。

       setaliasent()  関数はファイルポインターをエイリアスデータベースの先頭に巻き戻す。

       endaliasent()  関数はエイリアスデータベースをクローズする。

       getaliasent_r()   関数は上記の関数のリエントラント版である。  要求された構造体は第 1 引数に格納されるが、
       プログラマは他の引数も埋めてやる必要がある。 充分な領域が与えられないと、この関数は失敗する。

       関数  getaliasbyname()   は  name  引数をとり、エイリアスデータベースを検索する。   エントリーは   struct
       aliasent へのポインターとして返される。

       getaliasbyname_r()  は上記の関数のリエントラント版である。 要求された構造体は第 2 引数に格納されるが、 プ
       ログラマは他の引数も埋めてやる必要がある。 充分な領域が与えられないと、この関数は失敗する。

       struct aliasent<aliases.h> で定義されている。

           struct aliasent {
               char    *alias_name;             /* エイリアス名 */
               size_t   alias_members_len;
               char   **alias_members;          /* エイリアス名のリスト */
               int      alias_local;
           };

返り値

       関数 getaliasent_r()  と getaliasbyname_r()  は、エラーの場合に 0 以外の値を返す。

ファイル

       デフォルトのエイリアスデータベースは、ファイル /etc/aliases である。 これは /etc/nsswitch.conf ファイルで
       変更できる。

属性

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

       ┌────────────────────┬───────────────┬────────────────┐
       │インターフェース属性             │
       ├────────────────────┼───────────────┼────────────────┤
       │setaliasent(),      │ Thread safety │ MT-Safe locale │
       │endaliasent(),      │               │                │
       │getaliasent_r(),    │               │                │
       │getaliasbyname_r()  │               │                │
       ├────────────────────┼───────────────┼────────────────┤
       │getaliasent(),      │ Thread safety │ MT-Unsafe      │
       │getaliasbyname()    │               │                │
       └────────────────────┴───────────────┴────────────────┘

準拠

       このルーチンは glibc 固有のものである。 NeXT システムには同様のルーチンがある。

           #include <aliasdb.h>

           void alias_setent(void);
           void alias_endent(void);
           alias_ent *alias_getent(void);
           alias_ent *alias_getbyname(char *name);

       以下の例は gcc example.c -o example でコンパイルできる。 これはエイリアスデータベースにある全ての名前をダ
       ンプする。

       #include <aliases.h>
       #include <stdio.h>
       #include <stdlib.h>
       #include <errno.h>

       int
       main(void)
       {
           struct aliasent *al;
           setaliasent();
           for (;;) {
               al = getaliasent();
               if (al == NULL)
                   break;
               printf("Name: %s\n", al->alias_name);
           }
           if (errno) {
               perror("reading alias");
               exit(EXIT_FAILURE);
           }
           endaliasent();
           exit(EXIT_SUCCESS);

関連項目

       getgrent(3), getpwent(3), getspent(3), aliases(5)

この文書について

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