Provided by: manpages-fr_1.67.0-1_all bug

NOM

       getgrouplist - Lister les groupes auquels appartient un utilisateur.

SYNOPSIS

       #include <grp.h>

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

DESCRIPTION

       La  fonction  getgrouplist()  balaie  la  base  de  données  group à la
       recherche de  tous  les  groupes  auquels  user  appartient.   *ngroups
       identifiants  de  groupe  correspondant  à ces groupes sont enregistrés
       dans le tableau groups; la valeur de  retour  de  la  fonction  est  le
       nombre   de   GID   actuellement   enregistrés.  Le  groupe  group  est
       automatiquement inclus dans la liste des groupes renvoyée par getgrouplist().

VALEUR RENVOYÉE

       Si  *ngroups  est  plus  petit  que le nombre total de groupes trouvés,
       getgrouplist() renvoie -1. Dans tous  les  cas,  le  nombre  actuel  de
       groupes est enregistré dans *ngroups.

BOGUES

       L’implémentation   de   cette   fonction   dans   la  GlibC  2.3.2  est
       défectueuse : elle écrase  la  mémoire  lorsque  le  nombre  actuel  de
       groupes est plus grand que *ngroups.

CONFORMITÉ

       Cette fonction est présente depuis GlibC 2.2.4.

EXEMPLE

       /* Ceci plante avec la 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";   /* nom d’utilisateur ici */
               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;
       }

VOIR AUSSI

       getgroups(3), setgroups(3)

TRADUCTION

       Ce  document  est  une traduction réalisée par Alain Portal <aportal AT
       univ-montp2 DOT fr> le 20 juillet 2005 et révisée le 14 décembre  2005.

       L’équipe  de  traduction a fait le maximum pour réaliser une adaptation
       française de qualité. La version anglaise la plus à jour de ce document
       est       toujours       consultable       via       la      commande :
       « LANG=en man 3 getgrouplist ».  N’hésitez pas à signaler à l’auteur ou
       au traducteur, selon le cas, toute erreur dans cette page de manuel.