VMS Help
CRTL, setregid
*Conan The Librarian
|
Sets the real and effective group IDs.
This function is supported on OpenVMS Integrity servers and
Alpha only.
Format
#include <unistd.h>
int setregid (gid_t rgid, gid_t egid);
rgid
The value to which you want the real group ID set.
egid
The value to which you want the effective group ID set.
The setregid function is used to set the real and effective group
IDs of the calling process. If rgid is -1, the real group ID
is not changed; if egid is -1, the effective group ID is not
changed. The real and effective group IDs can be set to different
values in the same call.
Only a process with the IMPERSONATE privilege can set the real
group ID and the effective group ID to any valid value.
A nonprivileged process can set either the real group ID to the
saved set-group-ID from an exec function, or the effective group
ID to the saved set-group-ID or the real group ID.
Any supplementary group IDs of the calling process remain
unchanged.
If a set-group-ID process sets its effective group ID to its real
group ID, it can still set its effective group ID back to the
saved set-group-ID.
This function requires that long (32-bit) UID/GID support be
enabled. See 32-Bit UID and GID Macro (Integrity servers, Alpha)
for more information.
0 Successful completion.
-1 Indicates an error. Neither of the group IDs
is changed, and errno is set to one of the
following values:
o EINVAL - The value of the rgid or egid
argument is invalid or out-of-range.
o EPERM - The process does not have the
IMPERSONATE privilege, and a change
other than changing the real group ID to
the saved set-group-ID, or changing the
effective group ID to the real group ID or
the saved group ID, was requested.