mkdir(2) System Calls Manual mkdir(2)

mkdir, mkdirat - creează un director

Biblioteca C standard (libc, -lc)

#include <sys/stat.h>
int mkdir(const char *rută, mode_t mod-permisiuni);
#include <fcntl.h>           /* Definirea constantelor AT_* */
#include <sys/stat.h>
int mkdirat(int dirfd, const char *rută, mode_t mod-permisiuni);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

mkdirat():

    Începând cu glibc 2.10
        _POSIX_C_SOURCE >= 200809L
    Înainte de glibc 2.10:
        _ATFILE_SOURCE

mkdir() încearcă să creeze un director numit rută.

Argumentul mod-permisiuni specifică modul pentru noul director (a se vedea inode(7)). Acesta este modificat de umask al procesului în mod obișnuit: în absența unei ACL implicite, modul directorului creat este (mode & ~umask & 0777). Dacă alți biți mode sunt onorați pentru directorul creat depinde de sistemul de operare. Pentru Linux, a se vedea secțiunea VERSIUNI de mai jos.

Directorul nou creat va fi deținut de ID-ul de utilizator efectiv al procesului. Dacă directorul care conține fișierul are bitul set-group-ID activat sau dacă sistemul de fișiere este montat cu semantica de grup BSD (mount -o bsdgroups sau, sinonim mount -o grpid), noul director va moșteni proprietatea de grup de la părintele său; în caz contrar, va fi deținut de ID-ul de grup efectiv al procesului.

Dacă directorul părinte are bitul set-group-ID setat, atunci la fel îl va avea și directorul nou creat.

Apelul de sistem mkdirat() funcționează exact în același mod ca mkdir(), cu excepția diferențelor descrise aici.

Dacă ruta dată în rută este relativă, atunci aceasta este interpretată în raport cu directorul la care se referă descriptorul de fișier dirfd ( și nu în raport cu directorul curent de lucru al procesului apelant, așa cum face mkdir() pentru un nume de rută relativ).

Dacă ruta este relativă și dirfd este valoarea specială AT_FDCWD, atunci rută este interpretată relativ la directorul de lucru curent al procesului apelant (ca mkdir()).

Dacă ruta este absolută, atunci fd-director este ignorat.

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

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

Directorul părinte nu permite permisiunea de scriere pentru proces sau unul dintre directorii din rută nu a permis permisiunea de căutare; (a se vedea și path_resolution(7)).
(mkdirat()) rută este relativă, dar dirfd nu este nici AT_FDCWD, nici un descriptor de fișier valid.
Cota utilizatorului de blocuri de disc sau de noduri-i pe sistemul de fișiere a fost epuizată.
rută există deja (nu neapărat ca director). Aceasta include cazul în care rută este o legătură simbolică, „atârnată” sau nu.
ruta indică în afara spațiului de adrese accesibil.
Componenta finală („basename”) din rută al noului director este nevalidă (de exemplu, conține caractere care nu sunt permise de sistemul de fișiere subiacent).
S-au întâlnit prea multe legături simbolice în rezolvarea rutei.
Numărul de legături către directorul părinte ar depăși LINK_MAX.
ruta era prea lungă.
O componentă de director din rută nu există sau este o legătură simbolică ruptă.
Nu a fost disponibilă suficientă memorie pentru nucleu.
Dispozitivul care conține rută nu are spațiu pentru noul director.
Noul director nu poate fi creat deoarece cota de disc a utilizatorului este epuizată.
O componentă utilizată ca director în rută nu este, de fapt, un director.
(mkdirat()) rută este relativă și dirfd este un descriptor de fișier care se referă la un alt fișier decât un director.
Sistemul de fișiere care conține rută nu acceptă crearea de directoare.
ruta se referă la un fișier pe un sistem de fișiere numai-pentru-citire.
Asocierile UID sau GID (a se vedea user_namespaces(7)) nu au fost configurate.

Sub Linux, în afară de biții de permisiune, este onorat și bitul de mod-permisiune S_ISVTX.

Pe nucleele mai vechi în care mkdirat() nu este disponibil, funcția de învăluire glibc revine la utilizarea mkdir(). Atunci când rută este o rută relativă, glibc construiește un nume de rută bazat pe legătura simbolică din /proc/self/fd care corespunde argumentului dirfd.

POSIX.1-2008.

SVr4, BSD, POSIX.1-2001.
Linux 2.6.16, glibc 2.4.

Există multe neajunsuri în protocolul care stă la baza NFS. Unele dintre acestea afectează mkdir().

mkdir(1), chmod(2), chown(2), mknod(2), mount(2), rmdir(2), stat(2), umask(2), unlink(2), acl(5), path_resolution(7)

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.

17 mai 2025 Pagini de manual de Linux 6.15