Provided by:
manpages-fr-dev_2.64.1-1_all 
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> ».