getgrnam(3) Library Functions Manual getgrnam(3) BEZEICHNUNG getgrnam, getgrnam_r, getgrgid, getgrgid_r - ermittelt den Eintrag in der Gruppendatei BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include #include struct group *getgrnam(const char *name); struct group *getgrgid(gid_t gid); int getgrnam_r(const char *restrict name, struct group *restrict grp, char puf[restrict .puflange], size_t puflange, struct group **restrict ergebnis); int getgrgid_r(gid_t gid, struct group *restrict grp, char puf[restrict .puflange], size_t puflange, struct group **restrict ergebnis); Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)): getgrnam_r(), getgrgid_r(): _POSIX_C_SOURCE || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE BESCHREIBUNG Die Funktion getgrnam() liefert einen Zeiger auf eine Struktur zuruck, die die Felder des Eintrags in der Gruppendatenbank (beispielsweise die lokale Gruppendatei /etc/group, NIS und LDAP), der zur Gruppe name passt. Die Funktion getgrgid() liefert einen Zeiger auf eine Struktur zuruck, die die Felder des Eintrags in der Gruppendatenbank enthalt, der zur Gruppe mit der ID gid passt. Die Struktur group wird in wie folgt definiert: struct group { char *gr_name; /* Gruppenname */ char *gr_passwd; /* Gruppenpasswort */ gid_t gr_gid; /* Gruppenkennung */ char **gr_mem; /* mit Nullzeiger abgeschlossenes Feld von Zeigern auf Namen von Gruppenmitgliedern */ }; Weitere Informationen zu den Feldern dieser Struktur finden Sie in group(5). Die Funktionen getgrnam_r() und getgrgid_r() beschaffen die gleichen Informationen wie getgrnam() und getgrgid(), speichern aber die abgefragte group-Struktur an dem Ort, auf den grp weist. Die String-Felder, auf die die Mitglieder der group-Struktur weisen, werden im Puffer puf der Grosse puflange gespeichert. In *result wird ein Zeiger auf das Ergebnis (nach erfolgreichem Aufruf) oder NULL (falls kein Eintrag gefunden wurde oder ein Fehler auftrat) in * Ergebnis gespeichert. Der Aufruf sysconf(_SC_GETGR_R_SIZE_MAX) liefert entweder -1 ohne Anderung von errno oder die anfanglich vorgeschlagene Grosse fur Puffer zuruck. (Falls diese Grosse zu klein ist, schlagt der Aufruf mit ERANGE fehl. In diesem Fall kann der Aufrufende es mit einem grosseren Puffer erneut versuchen.) RUCKGABEWERT Die Funktionen getgrnam() und getgrgid() liefern einen Zeiger auf group-Struktur zuruck. Wurde der gesuchte Eintrag nicht gefunden oder trat ein Fehler auf, wird NULL zuruckgeliefert und errno gesetzt, um den Fehler anzuzeigen. Wenn Sie nach dem Aufruf errno prufen wollen, sollten er vor dem Aufruf auf 0 gesetzt werden. Der Ruckgabewert darf auf statischen Speicher zeigen und kann von nachfolgenden Aufrufen von getgrent(3), getgrgid() oder getgrnam() uberschrieben werden. (Ubergeben Sie den zuruckgegebenen Zeiger nicht an free(3).) Bei Erfolg geben getgrnam_r() und getgrgid_r() Null zuruck und setzen*result auf grp. Wenn kein passender Gruppen-Datensatz gefunden wurde, geben diese Funktionen 0 zuruck und speichern in *result NULL. Im Fehlerfall wird eine Fehlernummer zuruckgegeben und wiederum NULL in *result gespeichert. FEHLER 0 oder ENOENT oder ESRCH oder EBADF oder EPERM oder Der angegebene name oder die gid wurde nicht gefunden. EINTR Ein Signal wurde abgefangen; siehe signal(7). EIO E/A-Fehler (engl. I/O). EMFILE Die Beschrankung pro Prozess der Anzahl offener Datei-Deskriptoren wurde erreicht. ENFILE Die systemweite Beschrankung fur die Gesamtzahl offener Dateien wurde erreicht. ENOMEM Es ist nicht ausreichend Speicher fur die Bereitstellung einer group-Struktur vorhanden. ERANGE Zu wenig Pufferspeicher bereitgestellt. DATEIEN /etc/group lokale Gruppendatenbank-Datei ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +--------------+-------------------------+-----------------------------+ |Schnittstelle | Attribut | Wert | +--------------+-------------------------+-----------------------------+ |getgrnam() | Multithread-Fahigkeit | MT-Unsicher race:grnam | | | | locale | +--------------+-------------------------+-----------------------------+ |getgrgid() | Multithread-Fahigkeit | MT-Unsicher race:grgid | | | | locale | +--------------+-------------------------+-----------------------------+ |getgrnam_r(), | Multithread-Fahigkeit | MT-Sicher locale | |getgrgid_r() | | | +--------------+-------------------------+-----------------------------+ VERSIONEN Die oben unter >>RUCKGABEWERT<< gegebene Formulierung stammt aus POSIX.1. Es ruft im Fehlerfall nicht >>not found<< auf und legt daher nicht fest, welchen Wert errno in dieser Situation haben konnte. Aber das macht es unmoglich, Fehler zu erkennen. Man konnte argumentieren, dass nach POSIX errno unverandert bleiben sollten, wenn ein Eintrag nicht gefunden wird. Experimente auf verschiedenen UNIX-ahnlichen Systemen zeigen, dass in dieser Situation viele verschiedene Werte auftreten: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM und wahrscheinlich weitere. STANDARDS POSIX.1-2008. GESCHICHTE POSIX.1-2001, SVr4, 4.3BSD. SIEHE AUCH endgrent(3), fgetgrent(3), getgrent(3), getpwnam(3), setgrent(3), group(5) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer und Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 getgrnam(3)