table of contents
other versions
- buster 1:0.7-1
GETGROUPS(2) | Podręcznik programisty Linuksa | GETGROUPS(2) |
NAZWA¶
getgroups, setgroups - pobiera/ustawia listę identyfikatorów grup dodatkowychSKŁADNIA¶
#include <sys/types.h>#include <unistd.h>
int getgroups(int size, gid_t list[]);
#include <grp.h>
int setgroups(size_t size, const gid_t *list);
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!- getgroups
- Zwraca w list maksymalnie size dodatkowych ID grup. Nie jest określone, czy efektywny ID grupy procesu wywołującego będzie znajdować się na zwróconej liście. Tak więc, aplikacja powinna wywołać również getegid(2) i dodać lub usunąć otrzymaną wartość.) Jeśli size jest równe zero, to list nie jest modyfikowane, lecz zwracana jest ogólna liczba dodatkowych grup procesu.
- setgroups
- Ustawia dodatkowe grupy procesu. Jedynie superużytkownik może tego dokonać.
WARTOŚĆ ZWRACANA¶
- getgroups
- po pomyślnym zakończeniu zwraca liczbę grup dodatkowych. Po błędzie zwracane jest -1 i odpowiednio ustawiane errno.
- setgroups
- po pomyślnym zakończeniu zwraca zero. Po błędzie zwracane jest -1 i odpowiednio ustawiane errno.
BŁĘDY¶
- EFAULT
- list ma nieprawidłowy adres.
- EPERM
- Dla setgroups, użytkownik nie jest superużytkownikiem.
- EINVAL
- Dla setgroups, size jest większe niż NGROUPS (32 dla Linuksa 2.0.32). Dla getgroups, size jest mniejsze niż liczba grup dodatkowych, ale niezerowe.
UWAGI¶
Proces może posiadać maksymalnie co najmniej NGROUPS_MAX grup dodatkowych oprócz efektywnego ID grupy. Zbiór grup dodatkowych jest dziedziczony po procesie rodzicielskim i może zostać zmieniony za pomocą setgroups. Maksymalna liczba grup dodatkowych może być odczytana za pomocą sysconf(3):long ngroups_max; ngroups_max = sysconf(_SC_NGROUPS_MAX);Maksymalna zwracana przez getgroups wartość nie może być większa niż powiększona o jeden wartość otrzymana w powyższy sposób.
Prototyp dla setgroups jest dostępny jedynie, gdy zdefiniowane jest _BSD_SOURCE (bezpośrednio, albo pośrednio - nie definiując _POSIX_SOURCE czy kompilując z włączoną flagą -ansi).
ZGODNE Z¶
SVr4, SVID (tylko wydanie 4; wywołań tych nie było w SVr3), X/OPEN, 4.3BSD. Funkcja getgroups istnieje w POSIX.1. Ponieważ setgroups wymaga przywilejów, nie jest opisana w POSIX.1.ZOBACZ TAKŻE¶
initgroups(3), getgid(2), setgid(2)INFORMACJE O TŁUMACZENIU¶
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:- man --locale=C 2 getgroups
Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.
1997-12-10 | Linux 2.0.32 |