Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
GETGROUPLIST
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- VALEUR RENVOYÉE
- BOGUES
- CONFORMITÉ À
- VERSIONS
- EXEMPLE
- VOIR AUSSI
- TRADUCTION
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);
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.
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 n'est pas standard, elle est apparue sur la plupart des BSD.
VERSIONS
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
", groups[i]);
return 0;
}
VOIR AUSSI
getgroups(3), setgroups(3)
TRADUCTION
Cette page de manuel a été traduite et mise à jour par
Alain Portal <aportal AT univ-montp2 DOT fr> entre 2004 et 2006.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».
|