GETGROUPLIST(3)

名称
getgrouplist - グループアクセスリストの演算

書式
#include <unistd.h> int getgrouplist(const char *name, int basegid, int *groups, int *ngroups)

解説
getgrouplist() 関数はグループファイルを読み通して、 name で指定したユーザ のためにグループアクセスリストを演算します。グループリストには、 basegid が自動的に含まれます。通常、この値はパスワードファイルから、 グループ番号として与えられます。

結果のグループリストは、 groups で指された整数配列で返されます。呼び出し元は ngroups に示された整数で groups 配列の大きさを指定します。見付かった グループの実際の数は、 ngroups で返ります。

戻り値
getgrouplist() 関数は、そのユーザのグループすべてを保持するには、 グループリストのサイズが小さすぎる場合、-1 を返します。 グループ配列はこの場合、大きさに見合うだけの数のグループで満たされます。

関連ファイル
/etc/group
    グループ会員リスト

関連項目
setgroups(2), initgroups(3)

歴史
getgrouplist() 関数は 4.4BSD で最初に取り入れられました。

バグ
getgrouplist() 関数は、 getgrent(3) に基づくルーチンを使用します。 したがって、呼び出しプログラムがこれらのルーチンのどれかを使用すると、 getgrouplist() の呼び出しによってグループ構造体が上書きされます。