Provided by: manpages-de-dev_4.21.0-2_all bug

BEZEICHNUNG

       mkdir, mkdirat - ein Verzeichnis erzeugen

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

Ü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 Feature-Test-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 2.6.16 hinzugefügt; Bibliotheksunterstützung wurde zu Glibc 2.4 hinzugefügt.

STANDARDS

       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)

Ü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⟩.