GETGROUPS(2)

名称
getgroups - グループアクセスリストを取得

ライブラリ
libc

書式
<sys/types.h> <unistd.h> int getgroups(int gidsetlen, gid_t *gidset)

解説
getgroups() システムコールは、ユーザプロセスの現在のグループアクセスリストを取得し、 それを配列 gidset に保存します。 gidsetlen 引数は gidset 内に配置できるエントリの数を示します。 getgroups() システムコールは、 gidset に返された実際のグループの数を返します。 NGROUPS_MAX より大きい値は返しません。 gidsetlen が 0 の場合には getgroups() は、 gidset が指し示す配列を修正せずに、 呼び出したプロセスに対応する補助グループ ID の数を返します。

戻り値
呼び出しが正常に完了すると、グループセット内のグループの数が返されます。 戻り値 -1 はエラーが起こったことを示し、 エラーコードはグローバル変数 errno に保存されます。

エラー
getgroups() で起こり得るエラーは次のとおりです:

[EINVAL]
    引数 gidsetlen がグループセット内のグループの数より小さいです。

[EFAULT]
    引数 gidset は無効なアドレスを指しています。

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

歴史
getgroups() システムコールは 4.2BSD で登場しました。