ftok(3) | Library Functions Manual | ftok(3) |
NUME
ftok - convertește un nume de rută și un identificator de proiect într-o cheie IPC System V
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <sys/ipc.h>
key_t ftok(const char *nume-rută, int proj_id);
DESCRIERE
Funcția ftok() utilizează identitatea fișierului numit prin nume-rută dat (care trebuie să se refere la un fișier existent și accesibil) și cei mai puțin semnificativi 8 biți ai lui proj_id (care trebuie să fie diferiți de zero) pentru a genera o cheie IPC System V de tip key_t, adecvată pentru utilizare cu msgget(2), semget(2) sau shmget(2).
Valoarea rezultată este aceeași pentru toate numele de rută care denumesc același fișier, atunci când se utilizează aceeași valoare pentru proj_id. Valoarea returnată ar trebui să fie diferită atunci când fișierele (există simultan) sau ID-urile de proiect diferă.
VALOAREA RETURNATĂ
În caz de succes, se returnează valoarea key_t generată. În caz de eșec, se returnează -1, cu errno indicând eroarea ca în cazul apelului de sistem stat(2).
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
ftok() | Siguranța firelor | MT-Safe |
STANDARDE
POSIX.1-2008.
ISTORIC
POSIX.1-2001.
NOTE
Pe unele sisteme vechi, prototipul era:
key_t ftok(char *nume-rută, char proj_id);
În prezent, proj_id este un int, dar în continuare sunt utilizați doar 8 biți. Utilizarea tipică are un caracter ASCII proj_id, motiv pentru care se spune că are un comportament nedefinit atunci când proj_id este zero.
Desigur, nu se poate garanta că valoarea key_t rezultată este unică. În mod obișnuit, o încercare cât mai bună combină octetul proj_id dat, cei 16 biți inferiori ai numărului de inode și cei 8 biți inferiori ai numărului de dispozitiv într-un rezultat pe 32 de biți. Se pot produce cu ușurință coliziuni, de exemplu între fișierele de pe /dev/hda1 și fișierele de pe /dev/sda1.
EXEMPLE
A se vedea semget(2).
CONSULTAȚI ȘI
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
2 mai 2024 | Pagini de manual de Linux 6.8 |