Ce face ftok
Funcțiile System V (shm_attach, sem_get, msg_get_queue) au nevoie de o cheie numerică pe care toate procesele să o cunoască. ftok o calculează din inode-ul unui fișier existent și un caracter de proiect, deci procese diferite obțin aceeași cheie pentru același fișier.
Funcția nu există pe Windows.
Parametri
| Parametru | Descriere |
|---|---|
$filename |
Un fișier existent, de obicei chiar scriptul (__FILE__). |
$project_id |
Un singur caracter, ca să ai chei diferite din același fișier. |
Ce returnează
Cheia sau -1 la eroare.
Exemple
Exemplul 1: Cheie pentru un semafor
<?php
$cheie = ftok(__FILE__, "a");
$semafor = sem_get($cheie);
sem_acquire($semafor);
echo "Doar un proces rulează această parte (cheie $cheie)";
sem_release($semafor);
Rezultat posibil (necesită extensia sysvsem)
Doar un proces rulează această parte (cheie 1628308297)
Greșeli frecvente
- Dai un
$project_idmai lung de un caracter. Primești eroare: trebuie să fie exact un caracter.