getgrent(3) Library Functions Manual getgrent(3) NAZWA getgrent, setgrent, endgrent - odczytanie wpisu z pliku grup BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include #include struct group *getgrent(void); void setgrent(void); void endgrent(void); Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)): setgrent(): _XOPEN_SOURCE >= 500 || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 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 wskaznik do struktury, zawierajacej poszczegolne rekordy bazy danych o grupach (na przyklad z lokalnego pliku grup /etc/group, NIS-a lub LDAP-a). Podczas pierwszego wywolania getgrent() zwracany jest pierwszy wpis; pozniej zwracane sa kolejne. Funkcja setgrent() przesuwa wskaznik pliku na poczatek bazy danych o grupach, umozliwiajac jej ponowne przetwarzanie. Funkcja endgrent() jest uzywana do zamkniecia bazy danych o grupach po zakonczeniu jej przetwarzania. Strukture group zdefiniowano w nastepujaco: struct group { char *gr_name; /* nazwa grupy */ char *gr_passwd; /* haslo grupy */ gid_t gr_gid; /* identyfikator grupy */ char **gr_mem; /* zakonczona NULL-em tablica wskaznikow do nazw czlonkow grupy */ }; Wiecej informacji o polach w tej strukturze mozna znalezc w podreczniku group(5). WARTOSC ZWRACANA Funkcja getgrent() zwraca wskaznik do struktury group lub NULL, gdy nie ma wiecej wpisow lub gdy wystapil blad. W przypadku wystapienia bledu moze ustawic odpowiednia wartosc zmiennej errno. Aby moc sprawdzic errno po wywolaniu tej funkcji, nalezy ja przed wywolaniem ustawic na zero. Zwrocona wartosc moze wskazywac na statyczny obszar, ktory moze byc nadpisany przez kolejne wywolania getgrent(), getgrgid(3) lub getgrnam(3). (Zwroconego wskaznika nie nalezy przekazywac do funkcji free(3)). BLEDY EAGAIN Usluga byla czasowo niedostepna; prosze sprobowac ponownie pozniej. W przypadku uzywania uslug NSS w glibc wskazuje to na tymczasowy blad komunikacji z usluga NSS. Problem moze sie sam rozwiazac, sugerowane jest pozniejsze ponowne sprobowanie. EINTR Przechwycono sygnal, patrz signal(7). EIO Blad wejscia/wyjscia. EMFILE Zostalo osiagniete ograniczenie na liczbe otwartych deskryptorow plikow dla procesu. ENFILE Zostalo osiagniete systemowe ograniczenie na calkowita liczbe otwartych plikow. ENOENT Nie mozna bylo znalezc wymaganego pliku wejsciowego bazy danych. W przypadku uzywania uslug NSS w glibc oznacza to, ze nie zostaly poprawnie skonfigurowane. ENOMEM Zabraklo pamieci na przydzielenie struktury group. ERANGE Przekazano niewystarczajacy bufor. PLIKI /etc/group lokalny plik bazy grup ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +------------+--------------------------+------------------------------+ |Interfejs | Atrybut | Wartosc | +------------+--------------------------+------------------------------+ |getgrent() | Bezpieczenstwo watkowe | MT-Unsafe race:grent | | | | race:grentbuf locale | +------------+--------------------------+------------------------------+ |setgrent(), | Bezpieczenstwo watkowe | MT-niebezpieczne race:grent | |endgrent() | | locale | +------------+--------------------------+------------------------------+ W powyzszej tabeli, grent w race:grent oznacza, ze jesli ktoras z funkcji setgrent(), getgrent() lub endgrent() jest uzywana rownolegle w roznych watkach programu, moze nastapic sytuacja wyscigu danych. STANDARDY POSIX.1-2008. HISTORIA POSIX.1-2001, SVr4, 4.3BSD. ZOBACZ TAKZE fgetgrent(3), getgrent_r(3), getgrgid(3), getgrnam(3), getgrouplist(3), putgrent(3), group(5) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Andrzej Krzysztofowicz i Robert Luberda Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. getgrent(3)