fifo(7)

NUME
fifo - primul intrat primul ieșit („first-in first-out”: FIFO) fișier special, conductă cu nume

DESCRIERE
Un fișier special FIFO (o conductă cu nume) este similar cu o conductă, cu excepția faptului că este accesat ca parte a sistemului de fișiere. Acesta poate fi deschis de mai multe procese pentru citire sau scriere. Atunci când procesele fac schimb de date prin intermediul FIFO, nucleul transmite toate datele în mod intern, fără a le scrie în sistemul de fișiere. Astfel, fișierul special FIFO nu are niciun conținut în sistemul de fișiere; intrarea în sistemul de fișiere servește doar ca punct de referință pentru ca procesele să poată accesa conducta folosind un nume din sistemul de fișiere.

Nucleul păstrează exact un obiect conductă pentru fiecare fișier special FIFO care este deschis de cel puțin un proces. FIFO trebuie să fie deschis la ambele capete (citire și scriere) înainte ca datele să poată fi transmise. În mod normal, deschiderea FIFO este blocată până când este deschis și celălalt capăt.

Un proces poate deschide un FIFO în mod neblocat. În acest caz, deschiderea doar pentru citire reușește chiar dacă nimeni nu a deschis încă pe partea de scriere, iar deschiderea numai pentru scriere eșuează cu ENXIO (nu există un astfel de dispozitiv sau adresă), cu excepția cazului în care celălalt capăt a fost deja deschis.

În Linux, deschiderea unei FIFO pentru citire și scriere va reuși atât în modul blocant, cât și în cel neblocant. POSIX lasă acest comportament nedefinit. Acest lucru poate fi utilizat pentru a deschide o FIFO pentru scriere în timp ce nu există cititori disponibili. Un proces care utilizează ambele capete ale conexiunii pentru a comunica cu el însuși trebuie să fie foarte atent pentru a evita blocajele.

NOTE
Pentru detalii despre semantica In/Ieș pe FIFO-uri, a se vedea pipe(7).

Atunci când un proces încearcă să scrie într-o FIFO care nu este deschisă pentru citire de cealaltă parte, procesului i se trimite un semnal SIGPIPE.

Fișierele speciale FIFO pot fi create de mkfifo(3) și sunt indicate de ls -l cu tipul de fișier 'p'.

CONSULTAȚI ȘI
mkfifo(1), open(2), pipe(2), sigaction(2), signal(2), socketpair(2), mkfifo(3), pipe(7)

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.