Provided by: manpages-de-dev_2.16-1_all bug

BEZEICHNUNG

       getgrnam, getgrnam_r, getgrgid, getgrgid_r - ermittelt den Eintrag in der Gruppendatei

ÜBERSICHT

       #include <sys/types.h>
       #include <grp.h>

       struct group *getgrnam(const char *name);

       struct group *getgrgid(gid_t gid);

       int getgrnam_r(const char *name, struct group *grp,
                 char *buf, size_t buflen, struct group **result);

       int getgrgid_r(gid_t gid, struct group *grp,
                 char *buf, size_t buflen, struct group **result);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       getgrnam_r(), getgrgid_r():
           _POSIX_C_SOURCE
               || /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

BESCHREIBUNG

       Die  Funktion getgrnam() liefert einen Zeiger auf eine Struktur zurück, 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 zurück, die die Felder des
       Eintrags in der Gruppendatenbank enthält, der zur Gruppe mit der ID gid passt.

       Die Struktur group wird in <grp.h> wie folgt definiert:

           struct group {
               char   *gr_name;        /* Gruppenname */
               char   *gr_passwd;      /* Gruppenpasswort */
               gid_t   gr_gid;         /* Gruppenkennung */
               char  **gr_mem;         /* NULL-terminiertes 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  buf  der Größe buflen 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 Änderung von errno oder die anfänglich vorgeschlagene Größe für
       buf zurück. (Falls diese Größe zu klein ist, schlägt der Aufruf mit ERANGE fehl. In diesem
       Fall kann der Aufrufende es mit einem größeren Puffer erneut versuchen.)

RÜCKGABEWERT

       Die  Funktionen  getgrnam() und getgrgid() liefern einen Zeiger auf group-Struktur zurück.
       Wurde  der  gesuchte  Eintrag  nicht  gefunden  oder  trat  ein  Fehler  auf,  wird   NULL
       zurückgeliefert  und  errno  entsprechend  gesetzt.  Wenn Sie nach dem Aufruf errno prüfen
       wollen, sollten er vor dem Aufruf auf 0 gesetzt werden.

       Der Rückgabewert darf auf statischen Speicher zeigen und kann von  nachfolgenden  Aufrufen
       von  getgrent(3),  getgrgid()  oder  getgrnam()  überschrieben  werden. (Übergeben Sie den
       zurückgegebenen Zeiger nicht an free(3).)

       Bei Erfolg geben getgrnam_r() und getgrgid_r() Null zurück und setzen*result auf grp. Wenn
       kein  passender  Gruppen-Datensatz  gefunden  wurde,  geben  diese Funktionen 0 zurück und
       speichern in *result NULL. Im Fehlerfall wird eine Fehlernummer zurückgegeben 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 Beschränkung pro Prozess der Anzahl offener Datei-Deskriptoren wurde erreicht.

       ENFILE Die systemweite Beschränkung für die Gesamtzahl offener Dateien wurde erreicht.

       ENOMEM Es  ist  nicht  ausreichend  Speicher  für  die Bereitstellung einer group-Struktur
              vorhanden.

       ERANGE Zu wenig Pufferspeicher bereitgestellt.

DATEIEN

       /etc/group
              lokale Gruppendatenbank-Datei

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

       ┌──────────────┬───────────────────────┬─────────────────────────────┐
       │SchnittstelleAttributWert                        │
       ├──────────────┼───────────────────────┼─────────────────────────────┤
       │getgrnam()    │ Multithread-Fähigkeit │ MT-Unsafe race:grnam locale │
       ├──────────────┼───────────────────────┼─────────────────────────────┤
       │getgrgid()    │ Multithread-Fähigkeit │ MT-Unsafe race:grgid locale │
       ├──────────────┼───────────────────────┼─────────────────────────────┤
       │getgrnam_r(), │ Multithread-Fähigkeit │ MT-Safe locale              │
       │getgrgid_r()  │                       │                             │
       └──────────────┴───────────────────────┴─────────────────────────────┘

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

ANMERKUNGEN

       Die oben unter »RÜCKGABEWERT«  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 könnte. Aber das macht  es  unmöglich,  Fehler  zu  erkennen.  Man  könnte
       argumentieren,  dass  nach POSIX errno unverändert bleiben sollten, wenn ein Eintrag nicht
       gefunden wird. Experimente auf  verschiedenen  UNIX-ähnlichen  Systemen  zeigen,  dass  in
       dieser Situation viele verschiedene Werte auftreten: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK,
       EPERM und wahrscheinlich weitere.

SIEHE AUCH

       endgrent(3), fgetgrent(3), getgrent(3), getpwnam(3), setgrent(3), group(5)

KOLOPHON

       Diese Seite  ist  Teil  der  Veröffentlichung  5.03  des  Projekts  Linux-man-pages.  Eine
       Beschreibung  des  Projekts,  Informationen,  wie  Fehler gemeldet werden können sowie die
       aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche  Übersetzung  dieser  Handbuchseite  wurde  von  Martin   Eberhard   Schauer
       <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die GNU General Public License
       Version  3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE   HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.

                                        15. September 2017                            GETGRNAM(3)