Provided by: manpages-pl-dev_4.13-4_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ć 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).
┌───────────┬────────────────────────┬─────────┐
│ Interfejs │ Atrybut │ Wartość │
├───────────┼────────────────────────┼─────────┤
│ ftok() │ Bezpieczeństwo wątkowe │ MT-Safe │
└───────────┴────────────────────────┴─────────┘
ZGODNE Z
POSIX.1-2001, POSIX.1-2008.
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
See semget(2).
ZOBACZ TAKŻE
msgget(2), semget(2), shmget(2), stat(2), sysvipc(7)
O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux man-pages. Opis projektu, informacje
dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem
https://www.kernel.org/doc/man-pages/.
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 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.
GNU 11 kwietnia 2020 r. FTOK(3)