oracular (3) ftok.3.gz

Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       ftok  - przekształca ścieżkę i identyfikator projektu na klucz komunikacji międzyprocesowej (IPC) Systemu
       V

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <sys/ipc.h>

       key_t ftok(const char *pathname, int proj_id);

OPIS

       Funkcja ftok() wykorzystuje tożsamość pliku o nazwie podanej  w  pathname  (która  musi  odnosić  się  do
       istniejącego,  dostępnego  pliku)  oraz 8 najmniej znaczących bitów proj_id (które muszą stanowić wartość
       niezerową) do wygenerowania klucza komunikacji międzyprocesowej Systemu V  typu  key_t  odpowiedniego  do
       używania w msgget(2), semget(2) lub shmget(2).

       Wartość wynikowa jest taka sama dla wszystkich ścieżek określających nazwy tego samego pliku, o ile użyje
       się tej samej wartości proj_id.  Zwracane  wartości  powinny  się  różnić,  gdy  różnią  się  (istniejące
       jednocześnie) pliki lub identyfikatory projektu.

WARTOŚĆ ZWRACANA

       W  przypadku  powodzenia  zwracana jest wygenerowana wartość key_t. W przypadku błędu zwracane jest -1, a
       errno wskazuje błąd taki sam, jak dla funkcji systemowej stat(2).

ATRYBUTY

       Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

       ┌───────────────────────────────────────────────────────────────┬────────────────────────┬───────────────┐
       │InterfejsAtrybutWartość       │
       ├───────────────────────────────────────────────────────────────┼────────────────────────┼───────────────┤
       │ftok()                                                         │ Bezpieczeństwo wątkowe │ MT-bezpieczne │
       └───────────────────────────────────────────────────────────────┴────────────────────────┴───────────────┘

STANDARDY

       POSIX.1-2008.

HISTORIA

       POSIX.1-2001.

UWAGI

       Niektóre historyczne systemy używały następującego prototypu:

           key_t ftok(char *pathname, char proj_id);

       Obecnie proj_id jest typu int, ale nadal używanych jest tylko 8  bitów.  Typowe  zastosowanie  polega  na
       umieszczeniu  znaku ASCII w proj_id i dlatego mówi się, że zachowanie jest nieokreślone, gdy proj_id jest
       zerem.

       Oczywiście nie można dać gwarancji, że otrzymany  key_t  jest  niepowtarzalny.  Zazwyczaj  dla  uzyskania
       najlepszego  wyniku  w 32-bitową liczbę łączone są: podany bajt proj_id, 16 mniej znaczących bitów numeru
       i-węzła oraz 8 niższych bitów numeru urządzenia.  Kolizje  mogą  łatwo  wystąpić,  na  przykład  pomiędzy
       plikami na /dev/hda1 i plikami na /dev/sda1.

PRZYKŁADY

       Zob. semget(2).

ZOBACZ TAKŻE

       msgget(2), semget(2), shmget(2), stat(2), sysvipc(7)

TŁUMACZENIE

       Autorami    polskiego    tłumaczenia   niniejszej   strony   podręcznika   są:   Andrzej   Krzysztofowicz
       <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając  się  z  GNU General Public License w wersji 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ lub
       nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

       Błędy w tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  ⟨manpages-pl-
       list@lists.sourceforge.net⟩.