Provided by: manpages-de-dev_2.16-1_all bug

BEZEICHNUNG

       mkdir, mkdirat - ein Verzeichnis erzeugen

ÜBERSICHT

       #include <sys/stat.h>
       #include <sys/types.h>

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

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

       int mkdirat(int dirfd, 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 pathame zu erzeugen.

       Das  Argument  Modus legt den zu verwendenden Zugriffsmodus fest (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   dirfd   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 dirfd den besonderen Wert AT_FDCWD annimmt, wird Pfadname
       als relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses interpretiert  (wie
       mkdir()).

       Falls Pfadname absolut ist wird dirfd ignoriert.

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

RÜCKGABEWERT

       mkdir()  und  mkdirat() geben bei Erfolg 0 zurück und -1, wenn ein Fehler aufgetreten ist,
       errno wird dabei entsprechend gesetzt.

FEHLER

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

       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 pathname zeigt aus dem für Sie zugänglichen Adressraum heraus.

       EINVAL Die letzte Komponente  (»basename«)  von  pathname  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 pathname wurden zu viele symbolische Links gefunden.

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

       ENAMETOOLONG
              pathname war zu lang.

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

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

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

       ENOSPC Das  neue  Verzeichnis  kann  nicht  erzeugt  werden,  da  die Disk-Quota des Users
              erschöpft ist.

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

       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.

       Die folgenden zusätzlichen Fehler können bei mkdirat() auftreten:

       EBADF  dirfd ist kein zulässiger Dateideskriptor.

       ENOTDIR
              Pfadname ist relativ und dirfd ist ein Dateideskriptor, der  sich  auf  eine  Datei
              bezieht, die kein Verzeichnis ist.

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 dirfd 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.03  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  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 <debian-l10n-german@lists.debian.org>.