Получить запись из базы данных пользователей
#include <sys/types.h>#include <passwd.h>struct passwd * fgetpwent( FILE *f );
libc
Функция fgetpwent() работает аналогично функции getpwent(), но берет пользовательские записи из файлового потока. Эта функция использует статический буфер, который перезаписывается при каждом вызове.
Указатель на структуру 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 системной библиотеки