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);
 
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;
};
 
| インターフェース | 属性 | 値 | 
| setaliasent(), endaliasent(), getaliasent_r(), getaliasbyname_r() | Thread safety | MT-Safe locale | 
| getaliasent(), getaliasbyname() | Thread safety | MT-Unsafe | 
#include <aliasdb.h>
void alias_setent(void); void alias_endent(void); alias_ent *alias_getent(void); alias_ent *alias_getbyname(char *name);
#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);