SETALIASENT

Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index JM Home Page
 

名前

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(), endaliasent(), getaliasent_r(), getaliasbyname_r() Thread safety MT-Safe locale
getaliasent(), getaliasbyname() Thread safety MT-Unsafe
 

準拠

このルーチンは 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/ に書かれている。

関連キーワード

関数, getaliasent, データベース, aliasent, struct, getaliasbyname, SETALIASENT, include, endaliasent, setaliasent

Linux マニュアル 一覧

[man1] [man2] [man3] [man4] [man5] [man6] [man7] [man8]
[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z]

 

Index

名前
書式
説明
返り値
ファイル
属性
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 12:08:45 GMT, June 11, 2022