fgetgrent()

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

Прототип:

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

Аргументы:

f
Поток для чтения базы групп.

Библиотека:

libc

Описание:

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


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

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

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

Коды ошибок:

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

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <pwd.h>
int main( int argc, char **argv )
{
FILE *fp;
struct group *grp;
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 ( (grp = fgetgrent( fp )) != (struct group *)0 )
{
printf( "Group name: %s\n", grp->gr_name );
printf( "Group gid: %d\n", grp->gr_gid );
}
fclose(fp);
return (EXIT_SUCCESS);
}

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

Unix

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

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

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

struct group, errno, getgrent(), getgrgid(), getgrnam()




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