| getgrent(3) | Library Functions Manual | getgrent(3) |
getgrent, setgrent, endgrent - odczytuje wpis z pliku grup
Standardowa biblioteka C (libc, -lc)
#include <sys/types.h> #include <grp.h>
struct group *getgrent(void);
void setgrent(void); void endgrent(void);
setgrent():
_XOPEN_SOURCE >= 500
|| /* glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
getgrent(), endgrent():
Od glibc 2.22:
_XOPEN_SOURCE >= 500 || _DEFAULT_SOURCE
glibc 2.21 i wcześniejsze
_XOPEN_SOURCE >= 500
|| /* Od glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
|| /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
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.
Struktura group jest następująco zdefiniowana w pliku <grp.h>:
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).
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)).
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
| Interfejs | Atrybut | Wartość |
| getgrent() | Bezpieczeństwo wątkowe | MT-niebezpieczne race:grent race:grentbuf locale |
| setgrent(), endgrent() | Bezpieczeństwo wątkowe | MT-niebezpieczne 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.
POSIX.1-2008.
POSIX.1-2001, SVr4, 4.3BSD.
fgetgrent(3), getgrent_r(3), getgrgid(3), getgrnam(3), getgrouplist(3), putgrent(3), group(5)
Tłumaczenie niniejszej strony podręcznika: 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 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.
| 2 maja 2024 r. | Linux man-pages 6.9.1 |