ftok(3) przekształca ścieżkę i identyfikator projektu na klucz komunikacji

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.

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 3 ftok

Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.