Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       mknod, mknodat - creează un fișier special sau obișnuit

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <sys/stat.h>

       int mknod(const char *nume-rută, mode_t mod, dev_t dispozitiv);

       #include <fcntl.h>           /* Definirea constantelor AT_* */
       #include <sys/stat.h>

       int mknodat(int fd-director, const char *nume-rută, mode_t mod, dev_t dispozitiv);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       mknod():
           _XOPEN_SOURCE >= 500
               || /* Începând cu glibc 2.19: */ _DEFAULT_SOURCE
               || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIERE

       Apelul  de  sistem  mknod() creează un nod de sistem de fișiere (fișier, fișier special de dispozitiv sau
       conductă cu nume) numit nume-rută, cu atributele specificate de mod și dispozitiv.

       Argumentul mod specifică atât modul de fișier care urmează să fie utilizat, cât  și  tipul  de  nod  care
       urmează să fie creat. Acesta ar trebui să fie o combinație (utilizând logica SAU) a unuia dintre tipurile
       de fișiere enumerate mai jos și a zero sau mai mulți biți ai modului de fișier enumerați în inode(7).

       Modul  fișierului  este  modificat de umask al procesului în mod obișnuit: în absența unei ACL implicite,
       permisiunile nodului creat sunt (mod & ~umask).

       Tipul de fișier trebuie să fie unul dintre S_IFREG, S_IFCHR,  S_IFBLK,  S_IFIFO  sau  S_IFSOCK  pentru  a
       specifica un fișier obișnuit (care va fi creat gol), un fișier special de caractere, un fișier special de
       blocuri,  un FIFO (conductă cu nume) sau, respectiv, un soclu de domeniu UNIX; (tipul de fișier zero este
       echivalent cu tipul S_IFREG).

       Dacă tipul de fișier este S_IFCHR sau S_IFBLK, atunci dispozitiv specifică numerele majore și minore  ale
       fișierului  special  de  dispozitiv nou creat (makedev(3) poate fi util pentru a construi valoarea pentru
       dispozitiv); altfel, este ignorat.

       Dacă nume-rută există deja sau este o legătură simbolică, acest apel eșuează cu o eroare EEXIST.

       Nodul nou creat va fi deținut de ID-ul de utilizator efectiv al procesului. Dacă directorul care  conține
       nodul  are  bitul set-group-ID activat sau dacă sistemul de fișiere este montat cu semantica de grup BSD,
       noul nod va moșteni proprietatea de grup de la directorul său părinte;  în  caz  contrar,  acesta  va  fi
       deținut de ID-ul de grup efectiv al procesului.

   mknodat()
       Apelul  de  sistem  mknodat()  funcționează  exact  în  același  mod ca mknod(), 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 face referire descriptorul de fișier fd-director ( și nu în raport cu directorul curent de  lucru
       al procesului apelant, așa cum face mknod() pentru un nume de rută relativ).

       Dacă  nume-rută  este  relativ  și  fd-director  este  valoarea  specială AT_FDCWD, atunci nume-rută este
       interpretat relativ la directorul curent de lucru al procesului apelant (ca mknod()).

       Dacă nume-rută este absolut, atunci fd-director este ignorat.

       A se vedea openat(2) pentru o explicație a necesității mknodat().

VALOAREA RETURNATĂ

       mknod() și mknodat() returnează zero în caz de succes. În caz de eroare, este returnat -1, iar errno este
       configurată pentru a indica eroarea.

ERORI-IEȘIRE

       EACCES Directorul părinte nu permite permisiunea de scriere a procesului sau unul dintre  directorii  din
              prefixul rutei nume-rută nu a permis permisiunea de căutare; (a se vedea și path_resolution(7)).

       EBADF  (mknodat())  nume-rută  este relativ, dar fd-director 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.

       EFAULT nume-rută indică în afara spațiului de adrese accesibil.

       EINVAL mode a solicitat crearea a altceva decât un fișier obișnuit, un fișier special de dispozitiv, FIFO
              sau soclu.

       ELOOP  S-au întâlnit prea multe legături simbolice în rezolvarea nume-rută.

       ENAMETOOLONG
              nume-rută este prea lung.

       ENOENT O componentă de director din nume-rută nu există sau este o legătură simbolică incertă.

       ENOMEM Nu a fost disponibilă suficientă memorie pentru nucleu.

       ENOSPC Dispozitivul care conține nume-ruă nu are spațiu pentru noul nod.

       ENOTDIR
              O componentă utilizată ca director în nume-rută nu este, de fapt, un director.

       ENOTDIR
              (mknodat())  nume-rută  este relativ și fd-director este un descriptor de fișier care se referă la
              un alt fișier decât un director.

       EPERM  mode a solicitat crearea a altceva decât un fișier obișnuit, FIFO (conductă cu nume) sau soclu  de
              domeniu UNIX, iar apelantul nu este privilegiat (Linux: nu are capacitatea CAP_MKNOD); returnat de
              asemenea dacă sistemul de fișiere care conține nume-rută nu acceptă tipul de nod solicitat.

       EROFS  nume-rută se referă la un fișier pe un sistem de fișiere numai-pentru-citire.

VERSIUNI

       POSIX.1-2001  spune:  „Singura  utilizare portabilă a mknod() este de a crea un fișier special FIFO. Dacă
       mode nu este S_IFIFO sau dispozitiv nu este 0, comportamentul lui mknod() este  nespecificat.”  Cu  toate
       acestea,  în zilele noastre nu ar trebui să se utilizeze niciodată mknod() în acest scop; ar trebui să se
       utilizeze mkfifo(3), o funcție special definită pentru acest scop.

       Sub Linux, mknod() nu poate fi utilizat pentru  a  crea  directoare.  Trebuie  să  creați  directoare  cu
       mkdir(2).

STANDARDE

       POSIX.1-2008.

ISTORIC

       mknod()
              SVr4, 4.4BSD, POSIX.1-2001 (dar a se vedea secțiunea VERSIUNI).

       mknodat()
              Linux 2.6.16, glibc 2.4. POSIX.1-2008.

NOTE

       Există  multe  neajunsuri  în  protocolul care stă la baza NFS. Unele dintre acestea afectează mknod() și
       mknodat().

CONSULTAȚI ȘI

       mknod(1), chmod(2), chown(2), fcntl(2), mkdir(2),  mount(2),  socket(2),  stat(2),  umask(2),  unlink(2),
       makedev(3), mkfifo(3), acl(5), path_resolution(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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                           mknod(2)