The real and effective group IDs of the current process
are set 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.
Unprivileged users may change the real group
ID to the effective group ID and vice-versa; only the super-user may
make other changes.
Supplying a value of -1 for either the real or effective
group ID forces the system to substitute the current
ID in place of the -1 argument.
system call was intended to allow swapping
the real and effective group IDs
in set-group-ID programs to temporarily relinquish the set-group-ID value.
This system call did not work correctly,
and its purpose is now better served by the use of the
When setting the real and effective group IDs to the same value,
system call is preferred.