ftok(3) Library Functions Manual ftok(3) NAZWA ftok - przeksztalca sciezke i identyfikator projektu na klucz komunikacji miedzyprocesowej (IPC) Systemu V BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include key_t ftok(const char *pathname, int proj_id); OPIS Funkcja ftok() wykorzystuje tozsamosc pliku o nazwie podanej w pathname (ktora musi odnosic sie do istniejacego, dostepnego pliku) oraz 8 najmniej znaczacych bitow proj_id (ktore musza stanowic wartosc niezerowa) do wygenerowania klucza komunikacji miedzyprocesowej Systemu V typu key_t odpowiedniego do uzywania w msgget(2), semget(2) lub shmget(2). Wartosc wynikowa jest taka sama dla wszystkich sciezek okreslajacych nazwy tego samego pliku, o ile uzyje sie tej samej wartosci proj_id. Zwracane wartosci powinny sie roznic, gdy roznia sie (istniejace jednoczesnie) pliki lub identyfikatory projektu. WARTOSC ZWRACANA W przypadku powodzenia zwracana jest wygenerowana wartosc key_t. W przypadku bledu zwracane jest -1, a errno wskazuje blad taki sam, jak dla funkcji systemowej stat(2). ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------------------+--------------------------+---------------+ |Interfejs | Atrybut | Wartosc | +---------------------------+--------------------------+---------------+ |ftok() | Bezpieczenstwo watkowe | MT-bezpieczne | +---------------------------+--------------------------+---------------+ STANDARDY POSIX.1-2008. HISTORIA POSIX.1-2001. UWAGI Niektore historyczne systemy uzywaly nastepujacego prototypu: key_t ftok(char *pathname, char proj_id); Obecnie proj_id jest typu int, ale nadal uzywanych jest tylko 8 bitow. Typowe zastosowanie polega na umieszczeniu znaku ASCII w proj_id i dlatego mowi sie, ze zachowanie jest nieokreslone, gdy proj_id jest zerem. Oczywiscie nie mozna dac gwarancji, ze otrzymany key_t jest niepowtarzalny. Zazwyczaj dla uzyskania najlepszego wyniku w 32-bitowa liczbe laczone sa: podany bajt proj_id, 16 mniej znaczacych bitow numeru i-wezla oraz 8 nizszych bitow numeru urzadzenia. Kolizje moga latwo wystapic, na przyklad pomiedzy plikami na /dev/hda1 i plikami na /dev/sda1. PRZYKLADY See semget(2). ZOBACZ TAKZE msgget(2), semget(2), shmget(2), stat(2), sysvipc(7) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Andrzej Krzysztofowicz i Robert Luberda Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. ftok(3)