GETGRENT
Section: C Library Functions (3)
索引
jman
BSD mandoc
索引
名称
getgrent
getgrnam
getgrgid
setgroupent
setgrent
endgrent
- グループデータベースの操作
索引
書式
Fd #include <sys/types.h>
Fd #include <grp.h>
Ft struct group *
Fn getgrent void
Ft struct group *
Fn getgrnam const char *name
Ft struct group *
Fn getgrgid gid_t gid
Ft int
Fn setgroupent int stayopen
Ft int
Fn setgrent void
Ft void
Fn endgrent void
索引
解説
これらの関数はいずれも、
group(5)
に記述されたグループデータベースファイル
/etc/group
を操作します。データベースの各行は、インクルードファイル
Aq Pa grp.h
にある構造体
group
によって定義されます。次のとおりです。
struct group {
char *gr_name; /* グループ名 */
char *gr_passwd; /* グループパスワード */
int gr_gid; /* グループ id */
char **gr_mem; /* グループメンバ */
};
関数
Fn getgrnam
および
Fn getgrgid
は、
name
に示す与えられたグループ名または
gid
に示すグループ id を、グループデータベースで検索して、それぞれに最初の
適合エントリを返します。異なるエントリに同一グループ名または、同一グループ id
が与えられていると、未定義な不測の挙動をもたらすことがあります。
Fn getgrent
関数は、グループデータベースを順次読み込みます。完全な
グループリストを着実に生成するプログラム向きです。
3 つのルーチンはいずれも、読み込みに必要ならば目的のグループファイルを
オープンします。
Fn setgroupent
関数は目的のファイルをオープン、またはすでにオープンされている
場合はリワインドします。
Fa stayopen
が 0 でなければ、ファイル記述子はオープン
のままにされ、以後の関数呼び出しがきわめて高速化されます。ただし
Fn getgrent
の場合は、デフォルトでファイル記述子をクローズしないので、この
機能は不要です。また、グループファイルが更新される可能性があるので、
長期間実行するプログラムでこの機能を使用するのは危険です。注意してください。
Fn setgrent
関数は、0 の引数を持つ
Fn setgroupent
と同じです。
Fn endgrent
関数は、オープンされているファイルをクローズします。
索引
YP/NIS の相互作用
yp(4)
グループデータベースが使用可能な場合、要求されたグループがローカルの
/etc/groupfile
に見付からないと、
Fn getgrnam
および
Fn getgrgid
関数は、
YP マップ
``group.byname''
および
``group.bygid''
をそれぞれ使用します。
group(5)
で記述されたとおりに全体マップが使用可能ならば、
Fn getgrent
関数は YP マップ
``group.byname''
を通ります。
索引
戻り値
関数
Fn getgrent ,
Fn getgrnam ,
Fn getgrgid
は、いずれも成功すると
グループエントリのポインタを返します。エンドオブファイルに到達するかエラー
が発生した場合は、ヌルポインタが返ります。関数
Fn setgroupent
および
Fn setgrent
は、処理が無事に完了した場合は値 1 を返します。
その他の場合は値 0 が返ります。
関数
Fn endgrent
および
Fn setgrfile
の戻り値はありません。
索引
関連ファイル
- /etc/group
-
グループデータベースファイル
索引
関連項目
getpwent(3),
yp(4),
group(5)
索引
歴史
関数
Fn endgrent ,
Fn getgrent ,
Fn getgrnam ,
Fn getgrgid ,
Fn setgrent
は、
AT&T System
v7
で最初に取り入れられました。関数
Fn setgrfile
および
Fn setgroupent
は、
BSD 4.3 Reno
で最初に取り入れられました。
索引
互換性
代替パスワードデータベースの規格を許した歴史的な関数
Fn setgrfile
は、これまで非難されてきましたが、もはや使用できません。
索引
バグ
関数
Fn getgrent ,
Fn getgrnam ,
Fn getgrgid ,
Fn setgroupent ,
Fn setgrent
は、それぞれの結果を内部の静的オブジェクトに残し、そのオブジェクトの
ポインタを返します。後に続く同じ関数の呼び出しは、その同じオブジェクトを
改変します。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- YP/NIS の相互作用
-
- 戻り値
-
- 関連ファイル
-
- 関連項目
-
- 歴史
-
- 互換性
-
- バグ
-
Time: 07:06:52 GMT, January 12, 2009