fgetpwent()

Получить запись из базы данных пользователей

Прототип:

#include <sys/types.h>
#include <passwd.h>
struct passwd * fgetpwent( FILE *f );

Аргументы:

f
Поток для чтения базы пользователей.

Библиотека:

libc

Описание:

Функция fgetpwent() работает аналогично функции getpwent(), но берет пользовательские записи из файлового потока. Эта функция использует статический буфер, который перезаписывается при каждом вызове.


Note: Функции fgetpwent(), getpwent(), и getpwnam() используют один и тот же статический буфер.

Возвращаемое значение:

Указатель на структуру struct passwd, содержащий следующую запись из базы данных пользователей.

Коды ошибок:

Функция fgetpwent() использует следующие функции и устанавливает errno соответственно возвращаемым ими значениям:

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <pwd.h>
int main( int argc, char **argv )
{
FILE *fp;
struct passwd *pw;
if ( argc < 2 )
{
printf( "%s filename \n", argv[0] );
return (EXIT_FAILURE);
}
if ( !(fp = fopen( argv[1], "r" )) )
{
fprintf( stderr, "Can't open file %s \n", argv[1] );
return (EXIT_FAILURE);
}
while ( (pw = fgetpwent( fp )) != (struct passwd *)0 )
{
printf( "Username: %s\n", pw->pw_name );
printf( "uid: %d\n", pw->pw_uid );
}
fclose(fp);
return (EXIT_SUCCESS);
}

Классификация:

Unix

Поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2020

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Тематические ссылки:

struct passwd, errno, getpwent(), getpwnam(), getpwuid(), putpwent()




Предыдущий раздел: Описание API системной библиотеки