Provided by:
manpages-pl-dev_20060617-1_all 
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)