mkdir(2) System Calls Manual mkdir(2) NUME mkdir, mkdirat - creeaza un director BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include int mkdir(const char *ruta, mode_t mod-permisiuni); #include /* Definirea constantelor AT_* */ #include int mkdirat(int dirfd, const char *ruta, mode_t mod-permisiuni); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): mkdirat(): Incepand cu glibc 2.10 _POSIX_C_SOURCE >= 200809L Inainte de glibc 2.10: _ATFILE_SOURCE DESCRIERE mkdir() incearca sa creeze un director numit ruta. Argumentul mod-permisiuni specifica modul pentru noul director (a se vedea inode(7)). Acesta este modificat de umask al procesului in mod obinuit: in absena unei ACL implicite, modul directorului creat este (mode & ~umask & 0777). Daca ali bii mode sunt onorai pentru directorul creat depinde de sistemul de operare. Pentru Linux, a se vedea seciunea VERSIUNI de mai jos. Directorul nou creat va fi deinut de ID-ul de utilizator efectiv al procesului. Daca directorul care conine fiierul are bitul set-group-ID activat sau daca sistemul de fiiere este montat cu semantica de grup BSD (mount -o bsdgroups sau, sinonim mount -o grpid), noul director va moteni proprietatea de grup de la parintele sau; in caz contrar, va fi deinut de ID-ul de grup efectiv al procesului. Daca directorul parinte are bitul set-group-ID setat, atunci la fel il va avea i directorul nou creat. mkdirat() Apelul de sistem mkdirat() funcioneaza exact in acelai mod ca mkdir(), cu excepia diferenelor descrise aici. Daca ruta data in ruta este relativa, atunci aceasta este interpretata in raport cu directorul la care se refera descriptorul de fiier dirfd ( i nu in raport cu directorul curent de lucru al procesului apelant, aa cum face mkdir() pentru un nume de ruta relativ). Daca ruta este relativa i dirfd este valoarea speciala AT_FDCWD, atunci ruta este interpretata relativ la directorul de lucru curent al procesului apelant (ca mkdir()). Daca ruta este absoluta, atunci fd-director este ignorat. A se vedea openat(2) pentru o explicaie a necesitaii mkdirat(). VALOAREA RETURNATA mkdir() i mkdirat() returneaza zero in caz de succes. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EACCES Directorul parinte nu permite permisiunea de scriere pentru proces sau unul dintre directorii din ruta nu a permis permisiunea de cautare; (a se vedea i path_resolution(7)). EBADF (mkdirat()) ruta este relativa, dar dirfd nu este nici AT_FDCWD, nici un descriptor de fiier valid. EDQUOT Cota utilizatorului de blocuri de disc sau de noduri-i pe sistemul de fiiere a fost epuizata. EEXIST ruta exista deja (nu neaparat ca director). Aceasta include cazul in care ruta este o legatura simbolica, ,,atarnata" sau nu. EFAULT ruta indica in afara spaiului de adrese accesibil. EINVAL Componenta finala (,,basename") din ruta al noului director este nevalida (de exemplu, conine caractere care nu sunt permise de sistemul de fiiere subiacent). ELOOP S-au intalnit prea multe legaturi simbolice in rezolvarea rutei. EMLINK Numarul de legaturi catre directorul parinte ar depai LINK_MAX. ENAMETOOLONG ruta era prea lunga. ENOENT O componenta de director din ruta nu exista sau este o legatura simbolica rupta. ENOMEM Nu a fost disponibila suficienta memorie pentru nucleu. ENOSPC Dispozitivul care conine ruta nu are spaiu pentru noul director. ENOSPC Noul director nu poate fi creat deoarece cota de disc a utilizatorului este epuizata. ENOTDIR O componenta utilizata ca director in ruta nu este, de fapt, un director. ENOTDIR (mkdirat()) ruta este relativa i dirfd este un descriptor de fiier care se refera la un alt fiier decat un director. EPERM Sistemul de fiiere care conine ruta nu accepta crearea de directoare. EROFS ruta se refera la un fiier pe un sistem de fiiere numai-pentru-citire. EOVERFLOW Asocierile UID sau GID (a se vedea user_namespaces(7)) nu au fost configurate. VERSIUNI Sub Linux, in afara de biii de permisiune, este onorat i bitul de mod-permisiune S_ISVTX. note glibc Pe nucleele mai vechi in care mkdirat() nu este disponibil, funcia de invaluire glibc revine la utilizarea mkdir(). Atunci cand ruta este o ruta relativa, glibc construiete un nume de ruta bazat pe legatura simbolica din /proc/self/fd care corespunde argumentului dirfd. STANDARDE POSIX.1-2008. ISTORIC mkdir() SVr4, BSD, POSIX.1-2001. mkdirat() Linux 2.6.16, glibc 2.4. NOTE Exista multe neajunsuri in protocolul care sta la baza NFS. Unele dintre acestea afecteaza mkdir(). CONSULTAI I mkdir(1), chmod(2), chown(2), mknod(2), mount(2), rmdir(2), stat(2), umask(2), unlink(2), acl(5), path_resolution(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.15 17 mai 2025 mkdir(2)