標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 |
両方 |
#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 を戻します。