Provided by: manpages-pl-dev_4.13-4_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ć   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).

       ┌──────────┬────────────────────────┬─────────┐
       │InterfejsAtrybutWartość │
       ├──────────┼────────────────────────┼─────────┤
       │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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.