getgrouplist man page on CentOS

Man page or keyword search:  
man Server   8420 pages
apropos Keyword Search (all sections)
Output format
CentOS logo
[printable version]

GETGROUPLIST(3)		   Linux Programmer's Manual	       GETGROUPLIST(3)

NAME
       getgrouplist -  list of groups a user belongs to

SYNOPSIS
       #include <grp.h>

       int getgrouplist (const char *user, gid_t group,
			 gid_t *groups, int *ngroups);

DESCRIPTION
       The getgrouplist() function scans the group database for all the groups
       user belongs to.	 Up to	*ngroups  group	 IDs  corresponding  to	 these
       groups  are stored in the array groups; the return value from the func‐
       tion is the number of group IDs actually stored.	 The  group  group  is
       automatically  included	in  the	 list  of  groups returned by getgrou‐
       plist().

RETURN VALUE
       If *ngroups is smaller than the total number of groups found, then get‐
       grouplist() returns a value of `-1'.  In all cases the actual number of
       groups is stored in *ngroups.

BUGS
       The glibc 2.3.2 implementation of this function	is  broken:  it	 over‐
       writes memory when the actual number of groups is larger than *ngroups.

CONFORMING TO
       This function is non-standard; it appears on most BSDs.

VERSIONS
       This function is present since glibc 2.2.4.

EXAMPLE
       /* This crashes with glibc 2.3.2 */
       #include <stdio.h>
       #include <stdlib.h>
       #include <grp.h>
       #include <pwd.h>

       int main() {
	       int i, ng = 0;
	       char *user = "who";   /* username here */
	       gid_t *groups = NULL;
	       struct passwd *pw = getpwnam(user);
	       if (pw == NULL)
		       return 0;

	       if (getgrouplist(user, pw->pw_gid, NULL, &ng) < 0) {
		       groups = (gid_t *) malloc(ng * sizeof (gid_t));
		       getgrouplist(user, pw->pw_gid, groups, &ng);
	       }

	       for(i = 0; i < ng; i++)
		       printf("%d\n", groups[i]);

	       return 0;
       }

SEE ALSO
       getgroups(3), setgroups(3)

GNU				  2003-11-18		       GETGROUPLIST(3)
[top]

List of man pages available for CentOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net