Man page - getpwent(3)

Packages contains this manual

Available languages:

en fr pl ja ru ro de

Manual

getpwent

NAZWA
BIBLIOTEKA
SKŁADNIA
OPIS
WARTOŚĆ ZWRACANA
BŁĘDY
PLIKI
ATRYBUTY
WERSJE
STANDARDY
HISTORIA
ZOBACZ TAKŻE
TŁUMACZENIE

NAZWA

getpwent, setpwent, endpwent - pobiera wpis z pliku haseł

BIBLIOTEKA

Standardowa biblioteka C ( libc , -lc )

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 >= 2.19: */ _DEFAULT_SOURCE
|| /* 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 następująco zdefiniowana w pliku <pwd.h> :

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 errno , wskazując błąd. 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).

Image grohtml-3993352-1.png

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.

WERSJE

Pole pw_gecos nie jest wymienione w standardzie POSIX, ale większość implementacji je zawiera.

STANDARDY

POSIX.1-2008.

HISTORIA

POSIX.1-2001, SVr4, 4.3BSD.

ZOBACZ TAKŻE

fgetpwent (3), getpw (3), getpwent_r (3), getpwnam (3), getpwuid (3), putpwent (3), shadow (5), passwd (5)

TŁUMACZENIE

Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

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 .