Получить дополнительные идентификаторы групп для вызывающего процесса
#include <sys/types.h>#include <unistd.h>int getgroups( int gidsetsize,gid_t grouplist[] );
libc
Функция getgroups() заполняет массив grouplist дополнительными идентификаторами групп вызывающего процесса. Значения элементов массива с индексами большими или равными возвращаемому значению не определены.
Количество дополнительных идентификаторов групп; это значение равно нулю при NGROUPS_MAX
равном нулю.
Если возникла ошибка функция возвращает -1
, код ошибки записывается в errno.
/** Print the supplementary group IDs of* the calling process.*/#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <unistd.h>int main( void ){int gidsize;gid_t *grouplist;int i;gidsize = getgroups( 0, NULL );grouplist = malloc( gidsize * sizeof( gid_t ) );getgroups( gidsize, grouplist );for ( i = 0; i < gidsize; i++ )printf( "%d\n", ( int )grouplist[i] );return (EXIT_SUCCESS);}
POSIX 1003.1
errno, getegid(), geteuid(), getgid(), getuid(), setgroups()
Предыдущий раздел: Описание API системной библиотеки