Provided by: manpages-pl-dev_0.7-1_all bug

NAZWA

       getgroups, setgroups - pobiera/ustawia listę identyfikatorów grup dodatkowych

SKŁ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/.