GETGROUPS(2)

BEZEICHNUNG
getgroups, setgroups - hole/setze Group Access List

ÜBERSICHT
#include <unistd.h>

int getgroups(int size, gid_t list[]);

#define __USE_BSD
#include <grp.h>

int setgroups(size_t size, const gid_t *list);

BESCHREIBUNG

getgroups
    Bis zu size zusätzliche Gruppen werden in list eingetragen. Wenn size Null ist, wird list nicht geändert, doch wird die gesamte Anzahl der zusätzlichen Gruppen des Prozesses zurückgeliefert.

setgroups
    Setzt die zusätzlichen Gruppen für den Prozeß. Nur der Superuser darf diese Funktion benutzen.

RÜCKGABEWERTE

getgroups
    Bei Erfolg wird die Anzahl der Gruppen in list abgelegt. Falls size Null ist, wird die Anzahl der zusätzlichen Group IDs des Prozesses geliefert. Bei aufgetretenem Fehler wird -1 geliefert und errno wird entsprechend gesetzt.

setgroups
    Bei Erfolg wir Null geliefert, bei aufgetretenem Fehler wird -1 geliefert und errno wird entsprechend gesetzt.

FEHLER

EFAULT
    list ist eine ungültige Adresse.

EPERM
    Bei setgroups war der aufrufende Benutzer nicht der Superuser.

EINVAL
    Bei setgroups war gidsetsize größer als NGROUPS (32 unter Linux 0.99.11).

KONFORM ZU
getgroups ist konform zu POSIX.1 und wird in BSD 4.3 benutzt. Da setgroups Privilegien verlangt, ist es nicht durch POSIX.1 abgedeckt.

BUGS
Das Flag __USE_BSD sollte nicht für setgroups angefordert werden.

SIEHE AUCH
initgroups(3).