GETGRENT
Section: Linux Programmer's Manual (3)
Updated: 2007-07-26
Index
JM Home Page
roff page
名前
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)
参照):
getgrent(),
setgrent(),
endgrent():
_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500
説明
getgrent()
関数は、グループ・データベースから取得したエントリを
要素毎に分解し、各要素を格納した構造体へのポインタを返す
(グループ・データベースの例:
ローカルのグループファイル
/etc/group,
NIS, LDAP)。
最初に呼び出された時は最初のエントリを返し、それ以降は
呼び出される毎に次のエントリを返す。
setgrent()
関数を使うと、もう一度読み込めるように、
グループ・データベースの先頭に戻る。
endgrent()
関数は、全ての処理が終わった後にグループ・
データベースをクローズする。
group 構造体は、<grp.h> で以下のように定義されている:
-
struct group {
char *gr_name; /* グループ名 */
char *gr_passwd; /* グループのパスワード */
gid_t gr_gid; /* グループ ID */
char **gr_mem; /* グループのメンバ */
};
返り値
getgrent()
関数は
group
構造体へのポインタを返す。
これ以上エントリが無いか、エラーが発生した場合は NULL を返す。
エラーが発生すると、
errno
が適切に設定される。
この関数の呼び出し後に
errno
をチェックしたい場合は、呼び出し前に
errno
を 0 に設定しておかないといけない。
エラー
- EINTR
-
シグナルがキャッチされた。
- EIO
-
I/O エラー。
- EMFILE
-
呼び出したプロセスが既にファイルをオープンし過ぎている。
- ENFILE
-
システム上にオープンされたファイルが多過ぎる。
- ENOMEM
-
グループ情報構造体を割り当てるためのメモリが不十分。
- ERANGE
-
十分なバッファ空間がない。
ファイル
- /etc/group
-
ローカルのグループ・データベースファイル
準拠
SVr4, 4.3BSD, POSIX.1-2001.
関連項目
fgetgrent(3),
getgrent_r(3),
getgrgid(3),
getgrnam(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- ファイル
-
- 準拠
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:42 GMT, November 19, 2007