setregid() - 実グループ ID および有効グループ ID の設定

標準

標準/拡張機能 C/C++ 依存項目

XPG4.2
Single UNIX Specification、バージョン 3

両方  

形式

#define _XOPEN_SOURCE_EXTENDED 1
#include <unistd.h>

int setregid(gid_t rgid, gid_t egid);

機能説明

setregid() 関数は、呼び出しプロセスの実 GID または有効 GID (あるいは その両方) を、入力の実 GID および有効 GID 値で指定された値に設定します。指定値が -1 と等しい場合には、呼び出しプロセスの対応する実 GID または有効 GID は、未変更のままです。

該当する特権のあるプロセスでは、実 GID および有効 GID を任意の 有効 GID に設定できます。特権なしのプロセスで有効 GID を設定できるのは、EGID 引数が、プロセスの実 GID、有効 GID、または保管 GID のいずれかと等しい場合だけです。特権なしのプロセスで実 GID を設定できるのは、RGID 引数が、プロセスの実 GID、有効 GID、または保管 GID のいずれかと等しい場合だけです。

setregid() 関数が、1 つのアドレス・スペース内の複数のタスクから発行される場合は、同期を使用して、setregid() 関数が同時に実行されないようにしてください。1 つのアドレス・スペースで setregid() 関数を同時に実行すると、予測できない結果が引き起こされる可能性があります。

setregid() 関数は、呼び出しプロセスの補足 GID を変更しません。

戻り値

正常に実行された場合、setregid() は 0 を戻します。

正常に実行されなかった場合、グループ ID のいずれも変更されずに、setregid() は -1 を戻します。
エラー・コード
説明
EINVAL
rgid または egid 引数の値が無効か、または範囲外です。
EMVSSAF2ERR
SAF 呼び出し IRRSSU00 でエラーが発生しました。
EPERM
プロセスに該当する特権がなく、実グループ ID の 保管セット・グループ ID への変更、または有効グループ ID の 実グループ ID または保管グループ ID への変更以外の 変更が要求されました。

関連情報