Provided by: manpages-pl-dev_0.7-2_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():
           _XOPEN_SOURCE >= 500
               || /* Od glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
               || /* Glibc w wersji <= 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(), │ Bezpieczeństwo wątkowe │ MT-Unsafe race:grent locale │
       │endgrent()  │                        │                             │
       └────────────┴────────────────────────┴─────────────────────────────┘
       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  4.07  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  man  są:  Andrzej  M.
       Krzysztofowicz (PTM) <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów  na
       stronie   http://sourceforge.net/projects/manpages-pl/.   Jest   zgodne   z  wersją   4.07
       oryginału.

                                            2016-03-15                                GETGRENT(3)