Scroll to navigation

GETPW(3) Podręcznik programisty Linuksa GETPW(3)

NAZWA

getpw - rekonstrukcja wpisu z pliku passwd.

SKŁADNIA

#define _GNU_SOURCE             /* See feature_test_macros(7) */
#include <sys/types.h>
#include <pwd.h>

int getpw(uid_t uid, char *buf);

OPIS

Funkcja getpw() rekonstruuje linię wpisu w pliku passwd dla użytkownika określonego przez uid. Wynik jest zapisywany do bufora buf. Zwrócony bufor zawiera linię postaci:

name:passwd:uid:gid:gecos:dir:shell

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 */
};

Więcej informacji o polach w tej strukturze można znaleźć w podręczniku passwd(5).

WARTOŚĆ ZWRACANA

Po pomyślnym zakończeniu getpw() zwraca zero, po błędzie zwraca -1 i odpowiednio ustawia errno, wskazując na rodzaj błędu.

Jeśli w bazie danych haseł nie znaleziono identyfikatora uid, to getpw() zwraca -1, ustawia errno na 0 i pozostawia buf w stanie niezmienionym.

BŁĘDY

0 lub ENOENT
Brak użytkownika odpowiadającego identyfikatorowi uid.
EINVAL
buf ma wartość NULL.
ENOMEM
Zabrakło pamięci na przydzielenie struktury passwd.

PLIKI

/etc/passwd
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ść
getpw() Bezpieczeństwo wątkowe MT-Safe locale

ZGODNE Z

SVr2.

BŁĘDY

Funkcja getpw() jest niebezpieczna, gdyż może przepełnić udostępniony bufor buf. Została zastąpiona przez getpwuid(3).

ZOBACZ TAKŻE

endpwent(3), fgetpwent(3), getpwent(3), getpwnam(3), getpwuid(3), putpwent(3), setpwent(3), passwd(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ą: Przemek Borys (PTM) <pborys@dione.ids.pl>, 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.

2015-07-23 GNU