Provided by: manpages-pl-dev_4.15.0-9_all bug

NAZWA

       getgrent, setgrent, endgrent - odczytanie wpisu z pliku grup

SKŁADNIA

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

       struct group *getgrent(void);

       void setgrent(void);
       void endgrent(void);

   Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

       setgrent():
           _XOPEN_SOURCE >= 500
               || /* Od glibc 2.19: */ _DEFAULT_SOURCE
               || /* Glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

       getgrent(), endgrent():
           Since glibc 2.22:
               _XOPEN_SOURCE >= 500 || _DEFAULT_SOURCE
           Glibc 2.21 and earlier
               _XOPEN_SOURCE >= 500
                   || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
                   || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

OPIS

       Funkcja  getgrent()  zwraca  wskaźnik do struktury, zawierającej poszczególne rekordy bazy
       danych o grupach (na przykład z  lokalnego  pliku  grup  /etc/group,  NIS-a  lub  LDAP-a).
       Podczas  pierwszego  wywołania getgrent() zwracany jest pierwszy wpis; później zwracane są
       kolejne.

       Funkcja setgrent() przesuwa wskaźnik pliku na początek bazy danych o grupach, umożliwiając
       jej ponowne przetwarzanie.

       Funkcja  endgrent()  jest  używana  do zamknięcia bazy danych o grupach po zakończeniu jej
       przetwarzania.

       Strukturę group zdefiniowano w <grp.h> następująco:

           struct group {
               char   *gr_name;      /* nazwa grupy */
               char   *gr_passwd;    /* hasło grupy */
               gid_t   gr_gid;       /* identyfikator grupy */
               char  **gr_mem;       /* zakończona NULL-em tablica wskaźników
                                        do nazw członków grupy */
           };

       Więcej informacji o polach w tej strukturze można znaleźć w podręczniku group(5).

WARTOŚĆ ZWRACANA

       Funkcja getgrent() zwraca wskaźnik do struktury group lub NULL, gdy nie ma  więcej  wpisów
       lub gdy wystąpił błąd.

       W  przypadku  wystąpienia  błędu  może ustawić odpowiednią wartość zmiennej errno. Aby móc
       sprawdzić errno po wywołaniu tej funkcji, należy ją przed wywołaniem ustawić na zero.

       Zwrócona wartość może wskazywać na  statyczny  obszar,  który  może  być  nadpisany  przez
       kolejne  wywołania  getgrent(),  getgrgid(3)  lub  getgrnam(3).  (Zwróconego wskaźnika nie
       należy przekazywać do funkcji free(3)).

BŁĘDY

       EAGAIN Usługa była czasowo niedostępna; proszę spróbować  ponownie  później.  W  przypadku
              używania usług NSS w glibc wskazuje to na tymczasowy błąd komunikacji z usługą NSS.
              Problem może się sam rozwiązać, sugerowane jest późniejsze ponowne spróbowanie.

       EINTR  Przechwycono sygnał, patrz signal(7).

       EIO    Błąd wejścia/wyjścia.

       EMFILE Zostało  osiągnięte  ograniczenie  na  liczbę  otwartych  deskryptorów  plików  dla
              procesu.

       ENFILE Zostało osiągnięte systemowe ograniczenie na całkowitą liczbę otwartych plików.

       ENOENT Nie  można  było  znaleźć  wymaganego  pliku  wejściowego  bazy danych. W przypadku
              używania usług NSS w glibc oznacza to, że nie zostały poprawnie skonfigurowane.

       ENOMEM Zabrakło pamięci na przydzielenie struktury group.

       ERANGE Przekazano niewystarczający bufor.

PLIKI

       /etc/group
              lokalny plik bazy grup

ATRYBUTY

       Informacje  o  pojęciach  używanych  w  tym  rozdziale   można   znaleźć   w   podręczniku
       attributes(7).

       ┌───────────────────────┬────────────────────────┬────────────────────────────────────────┐
       │InterfejsAtrybutWartość                                │
       ├───────────────────────┼────────────────────────┼────────────────────────────────────────┤
       │getgrent()             │ Bezpieczeństwo wątkowe │ MT-Unsafe race:grent race:grentbuf     │
       │                       │                        │ locale                                 │
       ├───────────────────────┼────────────────────────┼────────────────────────────────────────┤
       │setgrent(), endgrent() │ Bezpieczeństwo wątkowe │ MT-Unsafe race:grent locale            │
       └───────────────────────┴────────────────────────┴────────────────────────────────────────┘

       W powyższej tabeli, grent w race:grent oznacza, że  jeśli  któraś  z  funkcji  setgrent(),
       getgrent()  lub  endgrent()  jest  używana  równolegle  w  różnych  wątkach programu, może
       nastąpić sytuacja wyścigu danych.

ZGODNE Z

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

ZOBACZ TAKŻE

       fgetgrent(3),  getgrent_r(3),  getgrgid(3),  getgrnam(3),  getgrouplist(3),   putgrent(3),
       group(5)

O STRONIE

       Angielska  wersja  tej  strony  pochodzi  z  wydania  5.13  projektu Linux man-pages. Opis
       projektu, informacje dotyczące zgłaszania błędów oraz  najnowszą  wersję  oryginału  można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej strony podręcznika są: Andrzej Krzysztofowicz
       <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe  informacje  o  warunkach  licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  lub  nowszej.  Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.

                                         22 marca 2021 r.                             GETGRENT(3)