getpw - rekonstrukcja wpisu z pliku passwd.
Standardowa biblioteka C (libc, -lc)
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <sys/types.h>
#include <pwd.h>
[[deprecated]] int getpw(uid_t uid, char *buf);
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 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 */
};
Więcej informacji o polach w tej strukturze można znaleźć w podręczniku passwd(5)EN.
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.
- 0 lub ENOENT
- Brak użytkownika odpowiadającego identyfikatorowi uid.
- EINVAL
- buf ma wartość NULL.
- ENOMEM
- Zabrakło pamięci na przydzielenie struktury passwd.
- /etc/passwd
- baza danych o hasłach
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7)EN.
| Interfejs | Atrybut | Wartość |
| getpw() | Bezpieczeństwo wątkowe | MT-Safe locale |
Funkcja getpw() jest niebezpieczna, gdyż może przepełnić udostępniony bufor buf. Została zastąpiona przez getpwuid(3).
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, 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.