Provided by: manpages-fr-dev_2.64.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);

   Feature Test Macro Requirements for glibc (see 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)

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> ».