table of contents
- bookworm-backports 4.25.0-1~bpo12+1
- testing 4.25.0-1
- unstable 4.25.0-1
mkfifo(3) | Library Functions Manual | mkfifo(3) |
NUME¶
mkfifo, mkfifoat - creează un fișier special FIFO (o conductă cu nume)
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <sys/types.h> #include <sys/stat.h>
int mkfifo(const char *pathname, mode_t mode);
#include <fcntl.h> /* Definirea constantelor AT_* */ #include <sys/stat.h>
int mkfifoat(int dirfd, const char *pathname, mode_t mode);
mkfifoat():
Începând cu glibc 2.10
_POSIX_C_SOURCE >= 200809L
Înainte de glibc 2.10:
_ATFILE_SOURCE
DESCRIERE¶
mkfifo() creează un fișier special FIFO cu numele nume-rută. mode specifică permisiunile FIFO-ului. Acesta este modificat de umask al procesului în mod obișnuit: permisiunile fișierului creat sunt (mode & ~umask).
Un fișier special FIFO este similar cu o conductă, cu excepția faptului că este creat într-un mod diferit. În loc să fie un canal de comunicare anonim, un fișier special FIFO este introdus în sistemul de fișiere prin apelarea mkfifo().
După ce ați creat un fișier special FIFO în acest mod, orice proces îl poate deschide pentru citire sau scriere, în același mod ca un fișier obișnuit. Cu toate acestea, trebuie să fie deschis simultan la ambele capete înainte de a putea efectua orice operație de intrare sau ieșire pe acesta. Deschiderea unui FIFO pentru citire se blochează în mod normal până când un alt proces deschide același FIFO pentru scriere și viceversa. Consultați fifo(7) pentru gestionarea fără blocare a fișierelor speciale FIFO.
mkfifoat()¶
Funcția mkfifoat() funcționează exact în același mod ca funcția mkfifo(), cu excepția diferențelor descrise aici.
Dacă numele de rută dat în nume-rută este relativ, atunci acesta este interpretat în raport cu directorul la care se referă descriptorul de fișier dirfd (și nu în raport cu directorul de lucru curent al procesului apelant, așa cum face mkfifo() pentru un nume de rută relativ).
Dacă nume-rută este relativ și dirfd este valoarea specială AT_FDCWD, atunci nume-rută este interpretat relativ la directorul de lucru curent al procesului apelant (ca mkfifo()).
Dacă nume-rută este absolut, atunci dirfd este ignorat.
A se vedea openat(2) pentru o explicație a necesității mkfifoat().
VALOAREA RETURNATö
În caz de succes, mkfifo() și mkfifoat() returnează 0. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
ERORI-IEȘIRE¶
- EACCES
- Unul dintre directoarele din nume-rută nu are permisiunea de căutare (execuție).
- EBADF
- (mkfifoat()) nume-rută este relativ, dar dirfd nu este nici AT_FDCWD, nici un descriptor de fișier valid.
- EDQUOT
- Cota utilizatorului de blocuri de disc sau de noduri-i pe sistemul de fișiere a fost epuizată.
- EEXIST
- nume-rută există deja. Aceasta include cazul în care nume-rută este o legătură simbolică, suspendată sau nu.
- ENAMETOOLONG
- Fie lungimea totală a nume-rută este mai mare decât PATH_MAX, fie o componentă individuală a numelui de fișier are o lungime mai mare decât NAME_MAX. În sistemul GNU, nu există nicio limită impusă asupra lungimii totale a numelui de fișier, dar unele sisteme de fișiere pot impune limite asupra lungimii unei componente.
- ENOENT
- O componentă de director din nume-rută nu există sau este o legătură simbolică incertă.
- ENOSPC
- Directorul sau sistemul de fișiere nu are spațiu pentru noul fișier.
- ENOTDIR
- O componentă utilizată ca director în nume-rută nu este, de fapt, un director.
- ENOTDIR
- (mkfifoat()) nume-rută este un nume de rută relativ și dirfd este un descriptor de fișier care se referă la un fișier, altul decât un director.
- EROFS
- nume-rută se referă la un sistem de fișiere numai-pentru-citire.
ATRIBUTE¶
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
mkfifo(), mkfifoat() | Siguranța firelor | MT-Safe |
VERSIUNI¶
Aceasta este implementată utilizând mknodat(2).
STANDARDE¶
POSIX.1-2008.
ISTORIC¶
- mkfifo()
- POSIX.1-2001.
- mkfifoat()
- glibc 2.4. POSIX.1-2008.
CONSULTAȚI ȘI¶
mkfifo(1), close(2), open(2), read(2), stat(2), umask(2), write(2), fifo(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 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.9.1 |