Provided by: manpages-pl-dev_20060617-1_all bug

NAZWA

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

SKŁADNIA

       # include <sys/types.h>
       # 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ć   oktet
       niezerowy) 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 stanowiących
       nazwy tego samego pliku, o ile użyje się tej  samej  wartości  proj_id.
       Zwracane  wartości  powinny  się  różnić  gdy (istniejące jednocześnie)
       pliki lub identyfikatory projektu różnią się.

WARTOŚĆ ZWRACANA

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

ZGODNE Z

       XPG4

UWAGI

       Pod libc4 i libc5 (oraz pod SunOS 4.x) prototyp miał postać
              key_t ftok(char *pathname, char proj_id);
       Obecnie proj_id jest typu int, ale nadal tylko 8 bitów jest  używanych.
       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 unikalny.
       Typowo, dla uzyskania  najlepszego  wyniku,  łą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 w 32-bitowy wynik. kolizje mogą  łatwo  wystąpić,  na
       przykład pomiędzy plikami na /dev/hda1 a plikami na /dev/sda1.

ZOBACZ TAKŻE

       ipc(5), msgget(2), semget(2), shmget(2), stat(2)