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¶
Uwaga! To tłumaczenie może być nieaktualne!
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)
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 3 ftok
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.