Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

getgrgid_r - Gruppendateieintrag für eine Gruppen-ID threadsicher ermitteln

&pagelevel(4)&pagelevel

Definition

#include <grp.h>

int getgrgid_r(gid_t gid, struct group *grp, char *buffer, size_t bufsize, struct group **result); 

Beschreibung

Die Funktion getgrgid_r() aktualisiert die Gruppenstrukur, auf die grp zeigt und speichert einen Zeiger auf diese Struktur an der Adresse, auf die result zeigt, ab. Die Struktur enthält den Eintrag aus der Gruppendatei, dessen Komponente gr_gid mit gid übereinstimmt. Die gefundene Gruppenstruktur aus der Gruppendatei wird in den Speicher, der mit dem Parameter buffer in der Länge bufsize übergeben wurde, kopiert. Die maximal für diesen Puffer benötigte Größe kann über den sysconf()-Parameter {_SC_GETGR_R_SIZE_MAX} ermittelt werden. Im Fehlerfall oder wenn der gesuchte Eintrag nicht gefunden werden konnte, wird ein Nullzeiger im Datenbereich, auf den result zeigt, zurückgegeben.

Returnwert

0

bei Erfolg.


Fehlernummer

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

Fehler

Die Funktion getgrgid_r() schlägt in allen Fällen fehl, in denen getgrgid(gid) fehl schlagen würde (siehe dort).

Zusätzlich schlägt getgrgid_r() fehl, wenn gilt:

ERANGE

Der über buffer und bufsize zur Verfügung gestellte Speicher reicht für die Aufnahme der Daten, auf die die resultierende Gruppenstruktur verweist, nicht aus.

Hinweis

Anwendungen, bei denen eine Überprüfung auf Fehlersituationen vorgesehen ist, müssen errno auf 0 setzen, bevor getgrgid_r() aufgerufen wird. Ist errno bei der Rückkehr auf einen Wert ungleich null gesetzt, tritt ein Fehler auf.

Siehe auch getgrgid(), getgrnam(), grp.h, limits.h, sys/types.h.