OSDN Git Service

(split) LDP: Restore and add Copyrights for draft pages
[linuxjm/LDP_man-pages.git] / draft / man3 / setaliasent.3
1 .\" Copyright 2003 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
2 .\"
3 .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
4 .\" Distributed under GPL
5 .\" %%%LICENSE_END
6 .\"
7 .\" Polished a bit, added a little, aeb
8 .\"
9 .\"*******************************************************************
10 .\"
11 .\" This file was generated with po4a. Translate the source file.
12 .\"
13 .\"*******************************************************************
14 .\"
15 .\" Japanese Version Copyright (c) 2004 Yuichi SATO
16 .\"         all rights reserved.
17 .\" Translated Sun Sep  5 20:44:27 JST 2004
18 .\"         by Yuichi SATO <ysato444@yahoo.co.jp>
19 .\"
20 .TH SETALIASENT 3 2003\-09\-09 GNU "Linux Programmer's Manual"
21 .SH 名前
22 setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname,
23 getaliasbyname_r \- エイリアスエントリを読み込む
24 .SH 書式
25 \fB#include <aliases.h>\fP
26 .sp
27 \fBvoid setaliasent(void);\fP
28 .sp
29 \fBvoid endaliasent(void);\fP
30 .sp
31 \fBstruct aliasent *getaliasent(void);\fP
32 .sp
33 \fBint getaliasent_r(struct aliasent *\fP\fIresult\fP\fB,\fP
34 .br
35 \fB char *\fP\fIbuffer\fP\fB, size_t \fP\fIbuflen\fP\fB, struct aliasent **\fP\fIres\fP\fB);\fP
36 .sp
37 \fBstruct aliasent *getaliasbyname(const char *\fP\fIname\fP\fB);\fP
38 .sp
39 \fBint getaliasbyname_r(const char *\fP\fIname\fP\fB, struct aliasent
40 *\fP\fIresult\fP\fB,\fP
41 .br
42 \fB char *\fP\fIbuffer\fP\fB, size_t \fP\fIbuflen\fP\fB, struct aliasent **\fP\fIres\fP\fB);\fP
43 .SH 説明
44 ネームサービススイッチ (Name Service Switch, NSS) で 利用可能なデータベースの 1 つとして、
45 メールエイリアスを保持するエイリアスデータベースがある。 (どのデータベースがサポートされているかを調べるには、 getent \-\-help
46 を実行すること。)  エイリアスデータベースにアクセスするために、 6 つの関数が提供されている。
47 .PP
48 \fBgetaliasent\fP()  関数はエイリアスデータベースから取り出した グループ情報を含む構造体へのポインタを返す。 1
49 回目に関数が呼ばれたときには、最初のエントリを返す; それ以降はその後のエントリを返す。
50 .PP
51 \fBsetaliasent\fP()  関数はファイルポインタをエイリアスデータベースの先頭に巻き戻す。
52 .PP
53 \fBendaliasent\fP()  関数はエイリアスデータベースをクローズする。
54 .PP
55 \fBgetaliasent_r\fP()  関数は上記の関数のリエントラント版である。 要求された構造体は第 1 引き数に格納されるが、
56 プログラマは他の引き数も埋めてやる必要がある。 充分な領域が与えられないと、この関数は失敗する。
57 .PP
58 関数 \fBgetaliasbyname\fP()  は name 引き数をとり、エイリアスデータベースを検索する。 エントリは \fIstruct
59 aliasent\fP へのポインタとして返される。
60 .PP
61 \fBgetaliasbyname_r\fP()  は上記の関数のリエントラント版である。 要求された構造体は第 2 引き数に格納されるが、
62 プログラマは他の引き数も埋めてやる必要がある。 充分な領域が与えられないと、この関数は失敗する。
63 .PP
64 \fIstruct aliasent\fP は \fI<aliases.h>\fP で定義されている。
65 .in +4n
66 .nf
67
68 struct aliasent {
69     char    *alias_name;             /* エイリアス名 */
70     size_t   alias_members_len;
71     char   **alias_members;          /* エイリアス名のリスト */
72     int      alias_local;
73 };
74 .fi
75 .in
76 .SH 返り値
77 関数 \fBgetaliasent_r\fP()  と \fBgetaliasbyname_r\fP()  は、エラーの場合に 0 以外の値を返す。
78 .SH ファイル
79 デフォルトのエイリアスデータベースは、ファイル \fI/etc/aliases\fP である。 これは \fI/etc/nsswitch.conf\fP
80 ファイルで変更できる。
81 .SH 準拠
82 このルーチンは glibc 固有のものである。 NeXT システムには同様のルーチンがある。
83 .in +4n
84 .nf
85
86 #include <aliasdb.h>
87
88 void alias_setent(void);
89 void alias_endent(void);
90 alias_ent *alias_getent(void);
91 alias_ent *alias_getbyname(char *name);
92 .fi
93 .in
94 .SH 例
95 以下の例は \fIgcc example.c \-o example\fP でコンパイルできる。 これはエイリアスデータベースにある全ての名前をダンプする。
96 .sp
97 .nf
98 #include <aliases.h>
99 #include <stdio.h>
100 #include <stdlib.h>
101 #include <errno.h>
102
103 int
104 main(void)
105 {
106     struct aliasent *al;
107     setaliasent();
108     for (;;) {
109         al = getaliasent();
110         if (al == NULL)
111             break;
112         printf("Name: %s\en", al\->alias_name);
113     }
114     if (errno) {
115         perror("reading alias");
116         exit(EXIT_FAILURE);
117     }
118     endaliasent();
119     exit(EXIT_SUCCESS);
120 .fi
121 .SH 関連項目
122 .\"
123 .\" /etc/sendmail/aliases
124 .\" Yellow Pages
125 .\" newaliases, postalias
126 \fBgetgrent\fP(3), \fBgetpwent\fP(3), \fBgetspent\fP(3), \fBaliases\fP(5)
127 .SH この文書について
128 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
129 である。プロジェクトの説明とバグ報告に関する情報は
130 http://www.kernel.org/doc/man\-pages/ に書かれている。