Other Alias
setgroupsSKŁ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.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/.