setgid(2) — System Calls
NAME
setgid − Sets the group ID
SYNOPSIS
#include <unistd.h>
int setgid (
gid_t group_id );
Application developers may want to specify an #include statement for <sys/types.h> before the one for <unistd.h> if programs are being developed for multiple platforms. The additional #include statement is not required on Tru64 UNIX systems or by ISO or X/Open standards, but may be required on other vendors’ systems that conform to these standards.
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
setgid(): POSIX.1, XPG4, XPG4−UNIX
Refer to the standards(5) reference page for more information about industry standards and associated tags.
PARAMETERS
group_idSpecifies the new group ID.
DESCRIPTION
The setgid() function sets the real group ID, effective group ID, and the saved set group ID to the value specified by the group_id parameter.
If the process does not have superuser privilege, but the group_id parameter is equal to the real group ID or the saved set group ID, the setgid() function sets the effective group ID to group_id. The real group ID and saved set group ID remain unchanged.
Any supplementary group IDs of the calling process remain unchanged.
RETURN VALUES
Upon successful completion, the setgid() function returns 0 (zero). Otherwise, the function returns −1 and sets errno to indicate the error.
ERRORS
The setgid() function sets errno to the specified values for the following conditions:
[EINVAL]The value of the group_id parameter is invalid.
[EPERM]The process does not have superuser privilege and the group_id parameter does not match the real group ID or the saved set group ID.
RELATED INFORMATION
Functions: exec(2), getgid(2), setuid(2)
Standards: standards(5)