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/ に書かれている。

関連キーワード

エイリアス   alias   aliasent   データベース   struct   getaliasent   getaliasbyname   エントリー   aliases   setaliasent   endaliasent   size   構造体   ポインター   getent   上記   要求   格納   プログラマ   領域   members   Thread   safety   ルーチン   example

Linux マニュアル 一覧

関連するコマンド・関数

endaliasent.3   getaliasbyname.3   getaliasent.3   getaliasent_r.3   setaliasent.3   newaliases.1
 

Index

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

This document was created by man2html, using the manual pages.
Time: 04:39:35 GMT, October 11, 2026