Man page - getaliasent(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

SETALIASENT

名 前
書 式
説 明
返 り 値
フ ァ イ ル
属 性
準 拠

関 連 項 目
こ の 文 書 に つ い て

名 前

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) を 参 照 。

Image grohtml-38613-1.png

準 拠

こ の ル ー チ ン は 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/ に 書 か れ て い る 。