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 の相互作用
戻り値
関連ファイル
関連項目
歴史
互換性
バグ

jman



Time: 07:06:52 GMT, January 12, 2009