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

NAZWA

       mkdir, mkdirat - tworzy katalog

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <sys/stat.h>

       int mkdir(const char *pathname, mode_t mode);

       #include <fcntl.h>           /* Definicja stałych AT_* */
       #include <sys/stat.h>

       int mkdirat(int dirfd, const char *pathname, mode_t mode);

   Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

       mkdirat():
           Od glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Przed glibc 2.10:
               _ATFILE_SOURCE

OPIS

       mkdir() próbuje utworzyć katalog o nazwie pathname.

       Argument  mode  określa  tryb nowego katalogu (zob. inode(7)). Jest on modyfikowany przez umask procesu w
       standardowy sposób: jeśli brak domyślnych ACL (list kontroli dostępu), tryb tworzonego katalogu to  (mode
       &  ~umask  &  0777).  To,  czy  inne  bity  mode są honorowane dla tworzonego katalogu, zależy od systemu
       operacyjnego. Sytuację w Linuksie, opisano poniżej w UWAGACH.

       Właścicielem nowo tworzonego katalogu będzie efektywny identyfikator użytkownika procesu.  Jeśli  katalog
       zawierający plik ma ustawiony bit set-group-ID albo system plików zamontowano z semantyką grup BSD (mount
       -o  bsdgroups  lub  synonimicznie mount -o grpid), nowo tworzony katalog odziedziczy uprawnienia grupy od
       swego rodzica; w pozostałych przypadkach będzie własnością efektywnego identyfikatora grupy procesu.

       Jeśli katalog nadrzędny ma ustawiony bit set-group-ID, będzie go miał również nowo tworzony katalog.

   mkdirat()
       Wywołanie systemowe mkdirat() operuje w dokładnie  taki  sam  sposób  jak  mkdir(),  z  wyjątkiem  różnic
       opisanych tutaj.

       Jeśli  ścieżka  podana  w  pathname  jest  względna,  jest to interpretowane w odniesieniu do katalogu do
       którego odnosi się deskryptor pliku dirfd (zamiast w odniesieniu do bieżącego katalogu roboczego  procesu
       wywołującego, jak w stosunku do ścieżek względnych robi to mkdir()).

       Jeśli  pathname  jest  względna  a dirfd ma wartość specjalną AT_FDCWD, to pathname jest interpretowana w
       odniesieniu do bieżącego katalogu roboczego procesu wywołującego (jak mkdir()).

       Jeśli ścieżka pathname jest bezwzględna, to dirfd jest ignorowane.

       Więcej informacji o potrzebie wprowadzenia mkdirat() można znaleźć w podręczniku openat(2).

WARTOŚĆ ZWRACANA

       Po pomyślnym zakończeniu mkdir() i mkdirat()  zwracają  zero.  W  przypadku  błędu  zwracane  jest  -1  i
       ustawiane errno wskazując błąd.

BŁĘDY

       EACCES Katalog  nadrzędny  nie  zezwala  na  uprawnienie  do zapisu wobec procesu lub jeden z katalogów w
              ścieżce pathname nie zezwala na uprawnienie przeszukania (zob. też path_resolution(7)).

       EBADF  (mkdirat())   pathname  jest  względna,  lecz  dirfd  nie  jest  ani  AT_FDCWD,  ani   prawidłowym
              deskryptorem pliku.

       EDQUOT Wyczerpano przydział bloków dysku lub i-węzłów użytkownika w systemie plików.

       EEXIST pathname  już  istnieje  (niekoniecznie  jako  katalog).  Obejmuje to przypadek, gdy pathname jest
              dowiązaniem symbolicznym, prawidłowym lub wiszącym.

       EFAULT pathname wskazuje poza dostępną dla użytkownika przestrzeń adresową.

       EINVAL Końcowa składowa („basename”) ścieżki pathname nowego katalogu  jest  nieprawidłowa  (np.  zawiera
              znaki niedozwolone w danym systemie plików).

       ELOOP  Podczas rozwiązywania pathname napotkano zbyt wiele dowiązań symbolicznych.

       EMLINK Liczba dowiązań zwykłych do katalogu nadrzędnego przekroczyłaby LINK_MAX.

       ENAMETOOLONG
              pathname było zbyt długie.

       ENOENT Składowa  pathname,  która  powinna  być  katalogiem  nie  istnieje  lub jest wiszącym dowiązaniem
              symbolicznym.

       ENOMEM Brak pamięci jądra.

       ENOSPC Na urządzeniu zawierającym pathname brak miejsca dla nowego katalogu.

       ENOSPC Nie można utworzyć nowego katalogu, ponieważ wyczerpano przydział dyskowy użytkownika.

       ENOTDIR
              Składnik pathname, który powinien być katalogiem, w rzeczywistości katalogiem nie jest.

       ENOTDIR
              (mkdirat())  pathname jest względna, a dirfd jest  deskryptorem  pliku  odnoszącym  się  do  pliku
              innego niż katalog.

       EPERM  System plików zawierający pathname nie obsługuje tworzenia katalogów.

       EROFS  pathname odnosi się do pliku w systemie plików tylko do odczytu.

WERSJE

       W Linuksie, oprócz bitów uprawnień, honorowany jest również bit mode S_ISVTX.

   Uwagi dla glibc
       W  starszych  jądrach,  gdzie mkdirat() jest niedostępne, funkcja opakowująca z glibc zapasowo korzysta z
       mkdir(). Gdy pathname jest ścieżką względną, glibc tworzy ścieżkę w oparciu o  dowiązanie  symboliczne  w
       /proc/self/fd, odnoszące się do argumentu dirfd.

STANDARDY

       POSIX.1-2008.

HISTORIA

       mkdir()
              SVr4, BSD, POSIX.1-2001.

       mkdirat()
              Linux 2.6.16, glibc 2.4.

UWAGI

       W  protokole  odpowiedzialnym  za  obsługę NFS istnieje wiele nietrafnych rozwiązań. Niektóre z nich mają
       wpływ na mkdir().

ZOBACZ TAKŻE

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

TŁUMACZENIE

       Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją.  Bliższe informacje o warunkach licencji można uzyskać
       zapoznając  się  z  GNU General Public License w wersji 3  lub  nowszej.   Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.9.1                            2 maja 2024 r.                                         mkdir(2)