Provided by: manpages-de-dev_4.15.0-9_all bug

BEZEICHNUNG

       mkdir, mkdirat - ein Verzeichnis erzeugen

ÜBERSICHT

       #include <sys/stat.h>

       int mkdir(const char *Pfadname, mode_t Modus);

       #include <fcntl.h>           /* Definition der AT_*-Konstanten */
       #include <sys/stat.h>

       int mkdirat(int Verzdd, const char *Pfadname, mode_t Modus);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       mkdirat():
           Seit Glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Vor Glibc 2.10:
               _ATFILE_SOURCE

BESCHREIBUNG

       mkdir() versucht, ein Verzeichnis mit dem Namen Pfadname zu erzeugen.

       Das Argument Modus gibt den zu verwendenden Zugriffsmodus an (siehe inode(7)). Es wird wie
       üblich noch von der umask des Prozesses verändert: Ohne Standard-ACL ist der Zugriffsmodus
       des  erzeugten  Verzeichnisses  (Modus  &  ~umask  &  0777).  Die Berücksichtigung weitere
       Modus-Bits des erzeugten Verzeichnisses hängen vom Betriebssystem ab. Für Linux gelten die
       folgenden ANMERKUNGEN.

       Das  neu  erzeugte Verzeichnis trägt die effektive Benutzerkennung des Prozesses. Wenn das
       das neue Verzeichnis enthaltende  Verzeichnis  set-group-id  gesetzt  hat  oder  wenn  das
       Dateisystem  mit der BSD-Gruppensemantik eingehängt wurde (mount -o bsdgroups oder synonym
       mount  -o  grpid),   erbt   das   neue   Verzeichnis   die   Gruppeneigentümerschaft   des
       Elternprozesses.  Anderenfalls wird die effektive Gruppenkennung des erzeugenden Prozesses
       Besitzer des Verzeichnisses.

       Wenn das Elternverzeichnis set-group-id gesetzt hat,  wird  das  neue  Verzeichnis  dieses
       ebenfalls gesetzt haben.

   mkdirat()
       Der  Systemaufruf mkdirat() funktioniert genauso wie mkdir(), außer den hier beschriebenen
       Unterschieden.

       Falls der in Pfadname übergebene Pfadname relativ ist, wird  er  als  relativ  zu  dem  im
       Dateideskriptor   Verzdd  referenzierten  Verzeichnis  interpretiert  (statt  relativ  zum
       aktuellen Arbeitsverzeichnis des aufrufenden Prozesses,  wie  es  bei  mkdir()  für  einen
       relativen Pfadnamen erfolgt).

       Falls  Pfadname relativ ist und Verzdd den besonderen Wert AT_FDCWD annimmt, wird Pfadname
       als relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses interpretiert  (wie
       mkdir()).

       Falls Pfadname absolut ist, wird Verzdd ignoriert.

       Lesen Sie openat(2) für eine Beschreibung der Notwendigkeit von mkdirat().

RÜCKGABEWERT

       mkdir()  und  mkdirat()  geben bei Erfolg 0 zurück. Bei einem Fehler wird -1 zurückgegeben
       und errno gesetzt, um den Fehler anzuzeigen.

FEHLER

       EACCES Das Elternverzeichnis gibt dem Prozess keine  Schreibberechtigung  oder  eines  der
              Verzeichnisse in Pfadname erlaubt keine Suche. (Siehe auch path_resolution(7).)

       EBADF  (mkdirat())  Der  Pfadname  ist  relativ,  aber  Verzdd ist weder AT_FDCWD noch ein
              gültiger Dateideskriptor.

       EDQUOT Das Kontingent des Benutzers an Datenträgerblöcken oder Inodes auf dem  Dateisystem
              ist ausgeschöpft.

       EEXIST Pfadname  existiert  bereits  (jedoch  nicht notwendigerweise als Verzeichnis). Das
              umfasst auch den Fall, dass Pfadname ein symbolischer Link ist –  egal  ob  er  ins
              Leere weist oder nicht.

       EFAULT Pfadname zeigt aus dem für Sie zugänglichen Adressraum heraus.

       EINVAL Die  letzte  Komponente  (»basename«)  von  Pfadname  des  neuen Verzeichnisses ist
              ungültig (beispielsweise enthält sie Zeichen, die im zugrunde liegenden Dateisystem
              nicht erlaubt sind).

       ELOOP  Bei der Auflösung von Pfadname wurden zu viele symbolische Links gefunden.

       EMLINK Die Anzahl von Links zum »Elternverzeichnis« würde LINK_MAX überschreiten.

       ENAMETOOLONG
              Pfadname war zu lang.

       ENOENT Eine  Verzeichniskomponente  von  Pfadname  existiert  nicht  oder  ist  ein  toter
              symbolischer Link.

       ENOMEM Es war nicht genügend Kernelspeicher verfügbar.

       ENOSPC Das Gerät, welches Pfadname enthält, hat keinen Platz für ein neues Verzeichnis.

       ENOSPC Das neue Verzeichnis kann  nicht  erzeugt  werden,  da  das  Plattenkontingent  des
              Benutzers erschöpft ist.

       ENOTDIR
              Eine als Verzeichnis benutzte Komponente von Pfadname ist kein Verzeichnis.

       ENOTDIR
              (mkdirat())  Pfadname  ist relativ und Verzdd ist ein Dateideskriptor, der sich auf
              eine Datei bezieht, die kein Verzeichnis ist.

       EPERM  Das Gerät, welches Pfadname enthält, erlaubt keine Erstellung von Verzeichnissen.

       EROFS  Pfadname bezieht sich auf eine Datei auf einem schreibgeschützten Dateisystem.

VERSIONEN

       mkdirat() wurde zu Linux in Kernel 2.6.16 hinzugefügt; Bibliotheksunterstützung  wurde  zu
       Glibc in Version 2.4 hinzugefügt.

KONFORM ZU

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

       mkdirat(): POSIX.1-2008.

ANMERKUNGEN

       Unter Linux, abgesehen von den Zugriffs-Bits, wird der Modus S_ISVTX ebenfalls anerkannt.

       Es  gibt  noch  viele  Ungereimtheiten  im  NFS zugrunde liegenden Protokoll. Einige davon
       betreffen mkdir().

   Anmerkungen zur Glibc
       Unter  älteren  Kernels,  in   denen   mkdirat()   nicht   verfügbar   ist,   weicht   die
       Glibc-Wrapper-Funktion  auf  mkdir()  aus.  Wenn Pfadname ein relativer Pfadname ist, dann
       konstruiert die Glibc einen Pfadnamen, der auf jenem symbolischen  Link  in  /proc/self/fd
       basiert, der dem Argument Verzdd entspricht.

SIEHE AUCH

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

KOLOPHON

       Diese Seite  ist  Teil  der  Veröffentlichung  5.13  des  Projekts  Linux-man-pages.  Eine
       Beschreibung  des  Projekts,  Informationen,  wie  Fehler gemeldet werden können sowie die
       aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung   dieser   Handbuchseite    wurde    von    Martin    Schulze
       <joey@infodrom.org>,  Ralf  Baumert  <bau@heineken.chemie.uni-dortmund.de>,  Daniel Kobras
       <kobras@linux.de>, Martin Eberhard  Schauer  <Martin.E.Schauer@gmx.de>,  Helge  Kreutzmann
       <debian@helgefjell.de>,  Mario  Blättermann  <mario.blaettermann@gmail.com> und Dr. Tobias
       Quathamer <toddy@debian.org> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version  3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ oder neuer bezüglich der Copyright-
       Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an die Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.