setaliasentのヘルプ・マニュアル
日本語 英語
setaliasent --help
man setaliasent
SETALIASENT(3) Linux Programmer’s Manual SETALIASENT(3)
名前
setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname,
getaliasbyname_r - エイリアスエントリを読み込む
書式
#include
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 は で定義されている。
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 ファイルで変更できる。
準拠
このルーチンは glibc 固有のものである。 NeXT には同様のルーチンがある。
#include
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
#include
#include
#include
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)
GNU 2003-09-09 SETALIASENT(3)
SETALIASENT(3) Linux Programmer’s Manual SETALIASENT(3)
NAME
setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname,
getaliasbyname_r - read an alias entry
SYNOPSIS
#include
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);
DESCRIPTION
One of the databases available with the Name Service Switch (NSS) is
the aliases database, that contains mail aliases. (To find out which
databases are supported, try getent --help.) Six functions are pro-
vided to access the aliases database.
The getaliasent() function returns a pointer to a structure containing
the group information from the aliases database. The first time it is
called it returns the first entry; thereafter, it returns successive
entries.
The setaliasent() function rewinds the file pointer to the beginning of
the aliases database.
The endaliasent() function closes the aliases database.
getaliasent_r() is the reentrant version of the previous function. The
requested structure is stored via the first argument but the programmer
needs to fill the other arguments also. Not providing enough space
causes the function to fail.
The function getaliasbyname() takes the name argument and searches the
aliases database. The entry is returned as a pointer to a struct
aliasent.
getaliasbyname_r() is the reentrant version of the previous function.
The requested structure is stored via the second argument but the pro-
grammer needs to fill the other arguments also. Not providing enough
space causes the function to fail.
The struct aliasent is defined in :
struct aliasent {
char *alias_name; /* alias name */
size_t alias_members_len;
char **alias_members; /* alias name list */
int alias_local;
};
RETURN VALUE
The functions getaliasent_r() and getaliasbyname_r() return a non-zero
value on error.
FILES
The default alias database is the file /etc/aliases. This can be
changed in the /etc/nsswitch.conf file.
CONFORMING TO
These routines are glibc-specific. The NeXT has similar routines:
#include
void alias_setent(void);
void alias_endent(void);
alias_ent *alias_getent(void);
alias_ent *alias_getbyname(char *name);
EXAMPLE
The following example compiles with gcc example.c -o example. It will
dump all names in the alias database.
#include
#include
#include
#include
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);
}
SEE ALSO
getgrent(3), getpwent(3), getspent(3), aliases(5)
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
GNU 2003-09-09 SETALIASENT(3)