Provided by:
manpages-fr_1.67.0-1_all 
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 getgroup‐
list().
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.