名 前
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/ に 書 か れ て い る 。