Rechercher une page de manuel
getgroups
Langue: pl
Version: 1997-12-10 (fedora - 25/11/07)
Section: 2 (Appels système)
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
- 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)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre