![]() Chapter Contents  | 
![]() Previous  | 
![]() Next  | 
| setgid | 
| Portability: | POSIX.1 conforming, UNIX compatible | 
| SYNOPSIS | |
| DESCRIPTION | |
| RETURN VALUE | |
| EXAMPLE | |
| RELATED FUNCTIONS | 
| SYNOPSIS | 
#include <sys/types.h> int setgid(gid_t groupID);
| DESCRIPTION | 
setgid
 sets one or more of the group IDs of the current process.  
groupID
 is the new group ID.
 
setgid
 succeeds and sets
the effective group ID to the real group ID if 
groupID
 is the same as the real group ID of the process.  If 
groupID
 is not the same as the
real group ID of the process, 
setgid
 succeeds only if the process belongs to a superuser, in which
case it sets the real group ID, effective group ID, and saved set group ID
to 
groupID
.
| RETURN VALUE | 
setgid
 returns a 
0
if successful and a 
-1
if unsuccessful.
| EXAMPLE | 
The following example illustrates the
use of 
setgid
 to set the
effective group ID to the real group ID: 
#include <unistd.h>
#include <stdio.h>
main()
{
   uid_t realGID, effectiveGID;
   realGID = getgid();
   effectiveGID = getegid();
   printf("Real group ID = %dn", (int) realGID);
   printf("Effective group ID = %dn", (int) effectiveGID);
   if (realGID != effectiveGID) {
      if (setgid(realGID) != 0)
         perror("setgid error");
      else
         printf("Effective group ID changed to %d.n", (int) realGID);
   }
}
| RELATED FUNCTIONS | 
getegid
, 
getgid
, 
setegid
, 
setuid
![]() Chapter Contents  | 
![]() Previous  | 
![]() Next  | 
![]() Top of Page  | 
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.