GNU
2016-03-15
Aliases: endpwent(3), endpwent(3), endpwent(3), endpwent(3), endpwent(3), endpwent(3), endpwent(3), endpwent(3), endpwent(3), endpwent(3), endpwent(3), endpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3), setpwent(3)
manpages-pl-dev
Polish man pages for developers
man-pages-pl
Polish man pages from the Linux Documentation Project
manpages-dev
Manual pages about using GNU/Linux for development
man-pages
Linux kernel and C library user-space interface documentation
NAZWA
getpwent, setpwent, endpwent - pobranie wpisu z pliku haseł
SKŁADNIA
#include <sys/types.h> #include <pwd.h>
struct passwd *getpwent(void);
void setpwent(void);
void endpwent(void);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):
getpwent(), setpwent(), endpwent():
_XOPEN_SOURCE >= 500
|| /* Glibc od wersji 2.19: */ _DEFAULT_SOURCE
|| /* Wersje glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
|| /* Glibc od wersji 2.19: */ _DEFAULT_SOURCE
|| /* Wersje glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
OPIS
Funkcja getpwent() zwraca wskaźnik do struktury, zawierającej poszczególne rekordy bazy danych haseł (na przykład z lokalnego pliku haseł /etc/passwd, NIS-a lub LDAP-a). Podczas pierwszego wywołania getpwent() zwracany jest pierwszy wpis; później zwracane są kolejne.
Funkcja setpwent() ustawia wskaźnik pliku na początek pliku bazy danych haseł.
Funkcja endpwent() jest używana do zamknięcia bazy danych haseł użytkowników po zakończeniu jej przetwarzania.
Struktura passwd jest zdefiniowana w <pwd.h> następująco:
struct passwd { char *pw_name; /* nazwa użytkownika */ char *pw_passwd; /* hasło użytkownika */ uid_t pw_uid; /* identyfikator użytkownika */ gid_t pw_gid; /* identyfikator grupy */ char *pw_gecos; /* informacje o użytkowniku */ char *pw_dir; /* katalog domowy */ char *pw_shell; /* program powłoki */ };
Jeśli włączone są zaciemniane (shadow(5)) hasła (a na wielu instalacjach GNU/Linux są domyślnie włączone) zawartość pola pw_passwd nie jest zbyt użyteczna. W takim przypadku większość haseł jest przechowywana w osobnym pliku.
Zmienna pw_shell może być pusta, co oznacza, że system uruchomi domyślną powłokę logowania użytkownika (/bin/sh).
Więcej informacji o polach w tej strukturze można znaleźć w podręczniku passwd(5).
WARTOŚĆ ZWRACANA
Funkcja getpwent() zwraca wskaźnik do struktury passwd albo NULL, jeśli nie ma więcej wpisów lub gdy wystąpił błąd. W przypadku wystąpienia błędu ustawia 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 getpwent(), getpwnam(3) lub getpwuid(3). (Zwróconego wskaźnika nie należy przekazywać do funkcji free(3)).
BŁĘDY
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. |
ENOMEM | Zabrakło pamięci na przydzielenie struktury passwd. |
ERANGE | Przekazano niewystarczający bufor. |
PLIKI
/etc/passwd | |
lokalny plik bazy z hasłami |
ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs | Atrybut | Wartość |
getpwent() | Bezpieczeństwo wątkowe | MT-Unsafe race:pwent race:pwentbuf locale |
setpwent(), endpwent() |
Bezpieczeństwo wątkowe | MT-Unsafe race:pwent locale |
W powyższej tabeli, pwent w race:pwent oznacza, że jeśli któraś z funkcji setpwent(), getpwent() lub endpwent() 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. Pole pw_gecos nie jest wymienione w standardzie POSIX, ale większość implementacji je zawiera.
ZOBACZ TAKŻE
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ą: Przemek Borys (PTM) <pborys>, Andrzej M. Krzysztofowicz (PTM) <ankry> i Robert Luberda <robert>.
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.
REFERENCED BY
fgetpwent(3), getpw(3), getpwent_r(3), getpwnam(3), getspnam(3), putpwent(3), setaliasent(3), getent(1), nss(5), nsswitch.conf(5), hlfsd(8), gentoo(1), gentoo(1x), lcmaps_posix_enf.mod(8), ftpd(8), shadow(3), , mh-alias(5mh), mh-alias(5), pmcd(1), pmdapipe(1), xscreensaver(1), passwd(5), xs(1), crypt_gensalt(3), crypt_rn(3), crypt(5)