int
setregid(
gid_t rgid
, gid_t egid
)
The real and effective group ID's of the current process are set according to the arguments. If the real group ID is changed, the saved group ID is changed to the new value of the effective group ID.
If
rgid
or
egid
is -1, the current gid is filled in by the system.
Unprivileged users may change the real group
ID to the effective group ID, and may change the effective group ID to the
real group ID or the saved group ID; only the super-user may
make other changes.
The
setregid()
function has been used to swap the real and effective group
IDs in set-group-ID programs to temporarily relinquish the set-group-ID
value.
This purpose is now better served by the use of the
setegid(
)
function (see
setgid(2)).
When setting the real and effective group IDs to the same value, this
function is equivalent to the
setgid()
function.
When setting only the effective group ID, this function is equivalent to
the
setegid(
)
function.
EPERM
]
)
function call appeared in
4.2BSD.
An incompatible version was implemented in
4.4BSD.
It was reimplemented in
NetBSD1.2
in a way compatible with
4.3BSD,
SunOS and Linux, but should not be used in new code.