GETGROUPS(2) |
FreeBSD System Calls Manual |
GETGROUPS(2) |
名称
getgroups —
グループアクセスリストを取得する
ライブラリ
Standard C Library (libc, -lc)
書式
#include < unistd.h>
int
getgroups( int gidsetlen, gid_t *gidset);
解説
getgroups() システムコールは、ユーザプロセスの現在のグループアクセスリストを取得し、配列
gidset に、それを格納します。
gidsetlen 引数は、
gidset に置かれるエントリの数を示します。
getgroups() システムコールは、
gidset に返されたグループの実際の数を返します。少なくとも、1 と {NGROUPSXMAX}+1 と同数の値が返されます。
gidsetlen が 0 であるなら、
getgroups() は、
gidset によって指されている配列を修正せずに、呼び出しているプロセスに関連した補足のグループ ID の数を返します。
{NGROUPS_MAX} の値は、実行形式に決め打ちすることを避けるために sysconf(3) を使用して取得されるべきです。
戻り値
呼び出しが成功すれば、グループセットのグループの数を返します。 -1 の値は、エラーが生じたことを示し、エラーコードが、グローバル変数
errno に格納されます。
エラー
getgroups() のためのあり得るエラーは、次の通りです:
-
[
EINVAL]
-
引数
gidsetlen が、グループセットのグループの数より小さいです。
-
[
EFAULT]
-
引数
gidset が、無効のアドレスを指定しています。
規格
getgroups() システムコールは、 IEEE Std 1003.1-2008 (“POSIX.1”) に適合しています。
歴史
getgroups() システムコールは、
4.2BSD で登場しました。