Provided by: manpages-fr-dev_2.80.1-1_all bug

NOM

       getgrouplist - Lister les groupes auxquels appartient un utilisateur

SYNOPSIS

       #include <grp.h>

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

   Exigences  pour les macros de test de fonctionnalité de la glibc (consultez
   feature_test_macros(7)) :

       getgrouplist() : _BSD_SOURCE

DESCRIPTION

       La fonction getgrouplist() balaie la base de  données  de  group  à  la
       recherche  de  tous  les  groupes  auxquels  user  appartient.  Jusqu’à
       *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.

VERSIONS

       Cette fonction est présente depuis glibc 2.2.4.

CONFORMITÉ

       Cette fonction n’est pas standard, elle est apparue sur la plupart  des
       BSD.

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.

EXEMPLE

       /* Ceci plante avec la glibc 2.3.2 */
       #include <stdio.h>
       #include <stdlib.h>
       #include <grp.h>
       #include <pwd.h>

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

           if (pw == NULL)
               exit(EXIT_SUCCESS);

           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]);

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       getgroups(2), setgroups(2)

COLOPHON

       Cette  page  fait  partie  de  la  publication 2.80 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite et mise à  jour  par  Alain  Portal
       <aportal  AT  univ-montp2  DOT  fr>  entre  2004  et  2006,  et  mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
       francophone de traduction de Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».