Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

getgroups - zusätzliche Gruppennummern ermitteln

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

Optional
#include <sys/types.h> (Ende)

int getgroups(int gidsetsize, gid_t grouplist[ ]);

Beschreibung

getgroups() ermittelt die aktuellen zusätzlichen Gruppennummern des aufrufenden Prozesses und speichert das Ergebnis im Vektor grouplist.

gidsetsize legt die Anzahl der Vektorelemente von grouplist fest. gidsetsize muss groß genug sein, um die komplette Liste aufzunehmen. Diese Liste kann nicht größer als {NGROUPS_-MAX} sein. Die tatsächliche Anzahl der im Vektor gespeicherten Gruppennummern wird zurückgegeben. Die Werte der Vektoreinträge mit Indizes größer oder gleich dem Returnwert sind undefiniert.

Wenn gidsetsize gleich 0 ist, liefert getgroups() die Anzahl der Gruppennummern, zu denen der aufrufende Prozess gehört, ohne dass der Vektor grouplist verändert wird.

Returnwert

Anzahl der zusätzlichen Gruppennummern



bei Erfolg. Der Returnwert ist ungleich 0 und kleiner als die Anzahl der Gruppennummern für den aufrufenden Prozess.


-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

getgroups() schlägt fehl, wenn gilt:


EINVAL

Der Wert von gidsetsize ist ungleich 0 und kleiner als gr_number für den aufrufenden Prozess.

Hinweise

Die effektive Gruppennummer des aufrufenden Prozesses ist in grouplist enthalten.

Siehe auch

auch getegid(), getuid(), setgid(), sys/types.h, unistd.h, Handbuch „POSIX-Grundlagen“[1].