.\" Copyright 2003 Walter Harms (walter.harms@informatik.uni-oldenburg.de) .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" Distributed under GPL .\" %%%LICENSE_END .\" .\" Polished a bit, added a little, aeb .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 2004 Yuichi SATO .\" all rights reserved. .\" Translated Sun Sep 5 20:44:27 JST 2004 .\" by Yuichi SATO .\" .TH SETALIASENT 3 2020\-06\-09 GNU "Linux Programmer's Manual" .SH 名前 setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname, getaliasbyname_r \- エイリアスエントリーを読み込む .SH 書式 \fB#include \fP .PP \fBvoid setaliasent(void);\fP .PP \fBvoid endaliasent(void);\fP .PP \fBstruct aliasent *getaliasent(void);\fP .PP \fBint getaliasent_r(struct aliasent *\fP\fIresult\fP\fB,\fP .br \fB char *\fP\fIbuffer\fP\fB, size_t \fP\fIbuflen\fP\fB, struct aliasent **\fP\fIres\fP\fB);\fP .PP \fBstruct aliasent *getaliasbyname(const char *\fP\fIname\fP\fB);\fP .PP \fBint getaliasbyname_r(const char *\fP\fIname\fP\fB, struct aliasent *\fP\fIresult\fP\fB,\fP .br \fB char *\fP\fIbuffer\fP\fB, size_t \fP\fIbuflen\fP\fB, struct aliasent **\fP\fIres\fP\fB);\fP .SH 説明 ネームサービススイッチ (Name Service Switch, NSS) で 利用可能なデータベースの 1 つとして、 メールエイリアスを保持するエイリアスデータベースがある。 (どのデータベースがサポートされているかを調べるには、 getent \-\-help を実行すること。) エイリアスデータベースにアクセスするために、 6 つの関数が提供されている。 .PP \fBgetaliasent\fP() 関数はエイリアスデータベースから取り出した グループ情報を含む構造体へのポインターを返す。 1 回目に関数が呼ばれたときには、最初のエントリーを返す; それ以降はその後のエントリーを返す。 .PP \fBsetaliasent\fP() 関数はファイルポインターをエイリアスデータベースの先頭に巻き戻す。 .PP \fBendaliasent\fP() 関数はエイリアスデータベースをクローズする。 .PP \fBgetaliasent_r\fP() 関数は上記の関数のリエントラント版である。 要求された構造体は第 1 引数に格納されるが、 プログラマは他の引数も埋めてやる必要がある。 充分な領域が与えられないと、この関数は失敗する。 .PP 関数 \fBgetaliasbyname\fP() は name 引数をとり、エイリアスデータベースを検索する。 エントリーは \fIstruct aliasent\fP へのポインターとして返される。 .PP \fBgetaliasbyname_r\fP() は上記の関数のリエントラント版である。 要求された構造体は第 2 引数に格納されるが、 プログラマは他の引数も埋めてやる必要がある。 充分な領域が与えられないと、この関数は失敗する。 .PP \fIstruct aliasent\fP は \fI\fP で定義されている。 .PP .in +4n .EX struct aliasent { char *alias_name; /* エイリアス名 */ size_t alias_members_len; char **alias_members; /* エイリアス名のリスト */ int alias_local; }; .EE .in .SH 返り値 関数 \fBgetaliasent_r\fP() と \fBgetaliasbyname_r\fP() は、エラーの場合に 0 以外の値を返す。 .SH ファイル デフォルトのエイリアスデータベースは、ファイル \fI/etc/aliases\fP である。 これは \fI/etc/nsswitch.conf\fP ファイルで変更できる。 .SH 属性 この節で使用されている用語の説明については、 \fBattributes\fP(7) を参照。 .ad l .TS allbox; lbw19 lb lb l l l. インターフェース 属性 値 T{ \fBsetaliasent\fP(), \fBendaliasent\fP(), \fBgetaliasent_r\fP(), \fBgetaliasbyname_r\fP() T} Thread safety MT\-Safe locale T{ \fBgetaliasent\fP(), \fBgetaliasbyname\fP() T} Thread safety MT\-Unsafe .TE .ad .SH 準拠 このルーチンは glibc 固有のものである。 NeXT システムには同様のルーチンがある。 .PP .in +4n .EX #include void alias_setent(void); void alias_endent(void); alias_ent *alias_getent(void); alias_ent *alias_getbyname(char *name); .EE .in .SH 例 以下の例は \fIgcc example.c \-o example\fP でコンパイルできる。 これはエイリアスデータベースにある全ての名前をダンプする。 .PP .EX #include #include #include #include int main(void) { struct aliasent *al; setaliasent(); for (;;) { al = getaliasent(); if (al == NULL) break; printf("Name: %s\en", al\->alias_name); } if (errno) { perror("reading alias"); exit(EXIT_FAILURE); } endaliasent(); exit(EXIT_SUCCESS); .EE .SH 関連項目 .\" .\" /etc/sendmail/aliases .\" Yellow Pages .\" newaliases, postalias \fBgetgrent\fP(3), \fBgetpwent\fP(3), \fBgetspent\fP(3), \fBaliases\fP(5) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は \%https://www.kernel.org/doc/man\-pages/ に書かれている。