fgetspent()

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

Прототип:

#include <sys/types.h>
#include <shadow.h>
struct spwd * fgetspent( FILE *f );

Аргументы:

f
Поток, из которого необходимо считать базу данных теневых паролей.

Библиотека:

libc

Описание:

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


Note: Функции fgetspent(), getspent() и getspnam() разделяют один статический буфер.

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

Указатель на объект типа 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 системной библиотеки