Provided by: manpages-de-dev_1.4-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 >= 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE || _POSIX_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;        /* Gruppenmitglieder */
           };

       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  Es wurde ein Signal abgefangen.

       EIO    E/A-Fehler (engl. I/O).

       EMFILE Im  aufrufenden  Prozess  war  schon  die  maximale  Anzahl  (OPEN_MAX) von Dateien
              geöffnet.

       ENFILE Im System wurde bereits die maximale Anzahl Dateien geöffnet.

       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

   Multithreading (see pthreads(7))
       The getgrnam()  and getgrgid()  functions are not thread-safe.

       The getgrnam_r()  and getgrgid_r()  functions are thread-safe.

KONFORM ZU

       SVr4, 4.3BSD, POSIX.1-2001.

ANMERKUNGEN

       Die  oben  unter  »RÜCKGABEWERT« gegebene Formulierung stammt aus POSIX.1-2001. 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

       This  page  is  part  of release 3.54 of the Linux man-pages project. A description of the
       project,    and    information    about    reporting    bugs,    can    be    found     at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung  dieser  Handbuchseite  wurde  von  Martin  Eberhard  Schauer
       <Martin.E.Schauer@gmx.de> 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>.

                                          22. Juli 2013                               GETGRNAM(3)