Man page - endgrent(3)

Packages contains this manual

Available languages:

en fr pl ja ru ro de

Manual

GETGRENT

名 前
書 式
説 明
返 り 値
エ ラ ー
フ ァ イ ル
属 性
準 拠
関 連 項 目
こ の 文 書 に つ い て

名 前

getgrent, setgrent, endgrent - グ ル ー プ フ ァ イ ル エ ン ト リ ー の 取 得

書 式

#include <sys/types.h>
#include <grp.h>

struct group *getgrent(void);

void setgrent(void);

void endgrent(void);

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

setgrent ():

_XOPEN_SOURCE >= 500
|| /* glibc 2.19 以 降 : */ _DEFAULT_SOURCE
|| /* glibc 2.19 以 前 : */ _BSD_SOURCE || _SVID_SOURCE

getgrent (), endgrent ():

glibc 2.22 以 降 :
_XOPEN_SOURCE >= 500 ||
_DEFAULT_SOURCE
Glibc 2.21 and earlier
_XOPEN_SOURCE >= 500
|| /* glibc 2.12 以 降 : */ _POSIX_C_SOURCE >= 200809L
|| /* glibc 2.19 以 前 : */ _BSD_SOURCE || _SVID_SOURCE

説 明

getgrent () 関 数 は 、 グ ル ー プ デ ー タ ベ ー ス か ら 取 得 し た エ ン ト リ ー を 要 素 毎 に 分 解 し 、 各 要 素 を 格 納 し た 構 造 体 へ の ポ イ ン タ ー を 返 す (グ ル ー プ デ ー タ ベ ー ス の 例 : ロ ー カ ル の グ ル ー プ フ ァ イ ル /etc/group , NIS, LDAP)。 getgrent () は 、 最 初 に 呼 び 出 さ れ た 時 は 最 初 の エ ン ト リ ー を 返 し 、 そ れ 以 降 は 呼 び 出 さ れ る 毎 に 次 の エ ン ト リ ー を 返 す 。

setgrent () 関 数 を 使 う と 、 も う 一 度 読 み 込 め る よ う に 、 グ ル ー プ デ ー タ ベ ー ス の 先 頭 に 戻 る 。

endgrent () 関 数 は 、 全 て の 処 理 が 終 わ っ た 後 に グ ル ー プ デ ー タ ベ ー ス を ク ロ ー ズ す る 。

group 構 造 体 は <grp.h> で 以 下 の よ う に 定 義 さ れ て い る :

struct group {
char *gr_name; /* グ ル ー プ 名 */
char *gr_passwd; /* グ ル ー プ の パ ス ワ ー ド */
gid_t gr_gid; /* グ ル ー プ ID */
char **gr_mem; /* グ ル ー プ の メ ン バ 名 へ の ポ イ ン タ ー
の 配 列 (配 列 は ヌ ル で 終 端 す る ) */
};

こ の 構 造 体 の フ ィ ー ル ド の 詳 細 は group (5) を 参 照 の こ と 。

返 り 値

getgrent () 関 数 は group 構 造 体 へ の ポ イ ン タ ー を 返 す 。 こ れ 以 上 エ ン ト リ ー が 無 い か 、 エ ラ ー が 発 生 し た 場 合 は NULL を 返 す 。

エ ラ ー が 発 生 す る と 、 errno が 適 切 に 設 定 さ れ る 。 こ の 関 数 の 呼 び 出 し 後 に errno を チ ェ ッ ク し た い 場 合 は 、 呼 び 出 し 前 に errno を 0 に 設 定 し て お か な い と い け な い 。

返 り 値 は 静 的 な 領 域 を 指 し て お り 、 そ の 後 の getgrent (), getgrgid (3), getgrnam (3) の 呼 び 出 し で 上 書 き さ れ る か も し れ な い 。 (返 さ れ た ポ イ ン タ ー を free (3) に 渡 さ な い こ と 。 )

エ ラ ー

EAGAIN

サ ー ビ ス が 一 時 的 に 利 用 で き な か っ た こ と 。 あ と で も う 一 度 試 し て ほ し い 。 NSS バ ッ ク エ ン ド の 場 合 、 glibc で は 、 バ ッ ク エ ン ド と の 通 信 中 に 一 時 的 な エ ラ ー が 発 生 し た こ と を 示 す 。 こ の エ ラ ー は 直 る か も し れ な い の で 、 あ と で も う 一 度 試 す よ う 提 案 し て い る 。

EINTR

シ グ ナ ル が 捕 捉 さ れ た 。 signal (7) 参 照 。

EIO

I/O エ ラ ー 。

EMFILE

オ ー プ ン さ れ た フ ァ イ ル デ ィ ス ク リ プ タ ー 数 が プ ロ セ ス 毎 の 上 限 に 達 し て い る 。

ENFILE

オ ー プ ン さ れ た フ ァ イ ル の 総 数 が シ ス テ ム 全 体 の 上 限 に 達 し て い る 。

ENOENT

必 要 な 入 力 フ ァ イ ル が 見 つ か ら な か っ た 。 NSS バ ッ ク エ ン ド の 場 合 、 glibc で は 、 こ の エ ラ ー は バ ッ ク エ ン ド が 正 し く 設 定 さ れ て い な い こ と を 示 す 。

ENOMEM

group 構 造 体 を 割 り 当 て る た め の メ モ リ ー が 不 十 分 。

ERANGE

与 え ら れ た バ ッ フ ァ ー 空 間 が 不 十 分 で あ る 。

フ ァ イ ル

/etc/group

ロ ー カ ル の グ ル ー プ デ ー タ ベ ー ス フ ァ イ ル

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-33938-1.png

In the above table, grent in race:grent signifies that if any of the functions setgrent (), getgrent (), or endgrent () are used in parallel in different threads of a program, then data races could occur.

準 拠

POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

関 連 項 目

fgetgrent (3), getgrent_r (3), getgrgid (3), getgrnam (3) getgrouplist (3), putgrent (3), group (5)

こ の 文 書 に つ い て

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