Получить запись из базы данных теневых паролей
#include <sys/types.h>#include <shadow.h>struct spwd * fgetspent( FILE *f );
libc
Функция fgetspent() работает аналогично функции getspent(), но предполагается, что она читает из файла, отформатированного как файл базы данных теневых паролей. Эта функция использует статический буфер, который перезаписывается при каждом вызове.
Указатель на объект типа struct spwd, содержащий следующую запись из базы данных теневых паролей.
Функция fgetspent() использует следующие функции, в результате errno может быть установлено для любого из этих вызовов:
#include <stdio.h>#include <stdlib.h>#include <pwd.h>#include <shadow.h>/** This program loops, reading a entries from a file* (which is formatted in the shadow password way)* reading the next shadow password entry.* For example this_file /etc/shadow*/int main( int argc, char **argv ){FILE *fp;struct spwd *sp;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 ( (sp = fgetspent( fp )) != (struct spwd *)0 ){printf( "Username: %s\n", sp->sp_namp );printf( "Password: %s\n", sp->sp_pwdp );}fclose(fp);return (EXIT_SUCCESS);}
Unix
struct spwd, errno, getgrent(), getlogin(), getpwnam(), getpwuid(), getspent(), getspnam(), putspent()
Предыдущий раздел: Описание API системной библиотеки