table of contents
- bookworm-backports 4.26.1-1~bpo12+1
- testing 4.26.1-1
- unstable 4.26.2-1
mkdir(2) | System Calls Manual | mkdir(2) |
NUME¶
mkdir, mkdirat - creează un director
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <sys/stat.h>
int mkdir(const char *nume-rută, mode_t mod-permisiuni);
#include <fcntl.h> /* Definirea constantelor AT_* */ #include <sys/stat.h>
int mkdirat(int dirfd, const char *nume-rută, mode_t mod-permisiuni);
mkdirat():
Începând cu glibc 2.10
_POSIX_C_SOURCE >= 200809L
Înainte de glibc 2.10:
_ATFILE_SOURCE
DESCRIERE¶
mkdir() încearcă să creeze un director numit nume-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 NOTE 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.
mkdirat()¶
Apelul de sistem mkdirat() funcționează exact în același mod ca mkdir(), 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 curent de lucru al procesului apelant, așa cum face mkdir() 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 mkdir()).
Dacă nume-rută este absolut, atunci dirfd este ignorat.
A se vedea openat(2) pentru o explicație a necesității mkdirat().
VALOAREA RETURNATö
mkdir() și mkdirat() returnează zero în caz de succes. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
ERORI-IEȘIRE¶
- EACCES
- Directorul părinte nu permite permisiunea de scriere pentru proces sau unul dintre directorii din nume-rută nu a permis permisiunea de căutare; (a se vedea și path_resolution(7)).
- EBADF
- (mkdirat()) 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 (nu neapărat ca director). Aceasta include cazul în care nume-rută este o legătură simbolică, „atârnată” sau nu.
- EFAULT
- nume-rută indică în afara spațiului de adrese accesibil.
- EINVAL
- Componenta finală („basename”) din nume-rută al noului director este nevalidă (de exemplu, conține caractere care nu sunt permise de sistemul de fișiere subiacent).
- ELOOP
- S-au întâlnit prea multe legături simbolice în rezolvarea nume-rută.
- EMLINK
- Numărul de legături către directorul părinte ar depăși LINK_MAX.
- 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-rută nu are spațiu pentru noul director.
- ENOSPC
- Noul director nu poate fi creat deoarece cota de disc a utilizatorului este epuizată.
- ENOTDIR
- O componentă utilizată ca director în nume-rută nu este, de fapt, un director.
- ENOTDIR
- (mkdirat()) nume-rută este relativ și dirfd este un descriptor de fișier care se referă la un alt fișier decât un director.
- EPERM
- Sistemul de fișiere care conține nume-rută nu acceptă crearea de directoare.
- EROFS
- nume-rută se referă la un fișier pe un sistem de fișiere numai-pentru-citire.
VERSIUNI¶
Sub Linux, în afară de biții de permisiune, este onorat și bitul de mod-permisiune S_ISVTX.
note glibc¶
Pe nucleele mai vechi în care mkdirat() nu este disponibil, funcția de învăluire glibc revine la utilizarea mkdir(). Atunci când nume-rută este un nume de rută relativ, glibc construiește un nume de rută bazat pe legătura simbolică din /proc/self/fd care corespunde argumentului dirfd.
STANDARDE¶
POSIX.1-2008.
ISTORIC¶
NOTE¶
Există multe neajunsuri în protocolul care stă la baza NFS. Unele dintre acestea afectează mkdir().
CONSULTAȚI Ș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 î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 |