Manpages

名 前

setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr − ネ ッ ト ワ ー ク グ ル ー プ の エ ン ト リ ー を 操 作 す る

書 式

#include <netdb.h>

int setnetgrent(const char *netgroup);

void endnetgrent(void);

int getnetgrent(char **host, char **user, char **domain);

int getnetgrent_r(char **host, char **user,
char **
domain, char *buf, size_t buflen);

int innetgr(const char *netgroup, const char *host,
const char *
user, const char *domain);

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

setnetgrent(), endnetgrent(), getnetgrent(), getnetgrent_r(), innetgr(): _BSD_SOURCE || _SVID_SOURCE

説 明

netgroup は SunOS で 考 案 さ れ た も の で あ る 。 ネ ッ ト グ ル ー プ の デ ー タ ベ ー ス の エ ン ト リ ー は 、 3 つ の 文 字 列 の リ ス ト (hostname, username, domainname) も し く は ネ ッ ト グ ル ー プ 名 で あ る 。 前 記 の リ ス ト の 各 要 素 は 空 で あ っ て も よ い 。 空 は 何 と で も 一 致 す る こ と を 意 味 す る 。 本 ペ ー ジ で 説 明 す る 関 数 を 使 う こ と で 、 ネ ッ ト グ ル ー プ の デ ー タ ベ ー ス に ア ク セ ス す る こ と が で き る 。 ど の デ ー タ ベ ー ス が 検 索 さ れ る か は /etc/nsswitch.conf フ ァ イ ル で 定 義 さ れ て い る 。

setnetgrent() コ ー ル は 、 こ の 後 で 呼 ば れ る getnetgrent() コ ー ル が 検 索 す る ネ ッ ト グ ル ー プ を 定 め る 。 getnetgrent() 関 数 は ネ ッ ト グ ル ー プ の 次 の エ ン ト リ ー を 取 得 し 、 host, user, domain に ポ イ ン タ ー を 入 れ て 返 る 。 ヌ ル ポ イ ン タ ー は 、 対 応 す る エ ン ト リ ー が ど ん な 文 字 列 と も 一 致 す る こ と を 意 味 す る 。 得 ら れ た ポ イ ン タ ー は 、 ネ ッ ト グ ル ー プ 関 係 の 関 数 の い ず れ か が 呼 ば れ る ま で の 間 だ け 有 効 で あ る 。 こ の 問 題 を 避 け る た め に は GNU 拡 張 の 関 数 getnetgrent_r() を 使 う と よ い 。 こ の 関 数 は 呼 び 出 し 側 が 用 意 し た バ ッ フ ァ ー に 文 字 列 を 格 納 す る 。 割 り 当 て 済 の バ ッ フ ァ ー を 全 て 解 放 す る に は endnetgrent() を 使 用 す る 。 ほ と ん ど の 場 合 、 (hostname, username, domainname) の 3要 素 の 組 が ネ ッ ト グ ル ー プ の メ ン バ ー か ど う か を 確 認 し た い だ け で あ ろ う 。 innetgr() 関 数 を 使 う と 、 上 記 の 3つ の 関 数 を 呼 び 出 さ ず に こ の 目 的 を 達 成 で き る 。 も う 一 度 書 い て お く が 、 NULL ポ イ ン タ ー は ワ イ ル ド カ ー ド で あ り 、 あ ら ゆ る 文 字 列 と 一 致 す る 。 こ の 関 数 は ス レ ッ ド セ ー フ で あ る 。

返 り 値

こ れ ら の 関 数 は 成 功 す る と 1 を 、 失 敗 す る と 0 を 返 す 。

フ ァ イ ル

/etc/netgroup
/etc/nsswitch.conf

準 拠

こ れ ら の 関 数 は POSIX.1−2001 に は な い が 、 setnetgrent (), endnetgrent (), getnetgrent (), innetgr () は ほ と ん ど の UNIX シ ス テ ム で 利 用 可 能 で あ る 。 getnetgrent_r() は 広 く 他 の シ ス テ ム で 利 用 で き る わ け で は な い 。

注 意

BSD の 実 装 で は setnetgrent() は void を 返 す 。

関 連 項 目

sethostent(3), setprotoent(3), setservent(3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。