#include <unistd.h>

int setgid(gid_t gid);


Declared, not implemented


IEEE Std 1003.1-2017


If the process has appropriate privileges, setgid() shall set the real group ID, effective group ID, and the saved set-group-ID of the calling process to gid.

If the process does not have appropriate privileges, but gid is equal to the real group ID or the saved set-group-ID, setgid() shall set the effective group ID to gid; the real group ID and saved set-group-ID shall remain unchanged.

The setgid() function shall not affect the supplementary group list in any way.

Any supplementary group IDs of the calling process shall remain unchanged.

Return value#

Upon successful completion, 0 is returned. Otherwise, -1 shall be returned and errno set to indicate the error.


The setgid() function shall fail if:

  • EINVAL - The value of the gid argument is invalid and is not supported by the implementation.

  • EPERM - The process does not have appropriate privileges and gid does not match the real group ID or the saved set-group-ID.



Known bugs#


See Also#

  1. Standard library functions

  2. Table of Contents