Provided by: manpages-de-dev_2.5-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 die zu verwendenden Zugriffsrechte fest (siehe inode(7)). Es wird wie üblich noch
       von der  umask  des  Prozesses  verändert:  Ohne  Standard-ACL  sind  die  Zugriffsrechte  des  erzeugten
       Verzeichnisses  (Modus  &  ~umask  &  0777).  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 Benutzer-ID 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
       Gruppen-ID  des  Elternprozesses.  Anderenfalls  wird  die effektive Gruppen-ID 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  4.15  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  Ralf   Baumert   <bau@heineken.chemie.uni-
       dortmund.de>,  Martin  Schulze  <joey@infodrom.org>,  Daniel  Kobras  <kobras@linux.de>,  Martin Eberhard
       Schauer <Martin.E.Schauer@gmx.de>, Mario  Blättermann  <mario.blaettermann@gmail.com>,  Helge  Kreutzmann
       <debian@helgefjell.de> 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>.