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