Получить следующую запись из файла базы данных паролей
#include <sys/types.h>
#include <pwd.h>
int getpwent_r( struct passwd *pwd,
char *buffer,
size_t bufsize,
struct passwd **result );
- pwd
- Указатель на структуру struct passwd, где функция может хранить запись.
- buffer
- Область памяти, которую функция может использовать для выделения памяти, на которую ссылается структура struct passwd. Существует возможность определить максимальный размер этой области памяти путем вызова sysconf() с аргументом
_SC_GETPW_R_SIZE_MAX
.
- bufsize
- Размер области памяти (в символах), на которую указывает buffer.
- result
- Адрес указателя на структуру struct passwd. Если getpwent_r() находит следующую запись, то она сохраняет указатель на pwd в области памяти result; в пртивном случае, функция сохраняет там
NULL
.
libc
Функция getpwent_r() возвращает следующую запись из базы данных паролей. Функция похожа на getpwent(), но getpwent_r() допускает повторный вызов.
- 0
- Успешное завершение.
- ≠0
- Возникла ошибка. Код ошибки записан в errno.
Функция getpwent_r() вызывает следующие функции, и как следствие, errno может быть установлен в одном из этих вызовов:
POSIX 1003.1 Thread-Safe Functions
- Да
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
struct passwd, endpwent(), errno, getgrent(), getlogin(), getpwnam(), getpwuid(), setpwent()
Предыдущий раздел: Описание API системной библиотеки