mkdir(2) System Calls Manual mkdir(2) BEZEICHNUNG mkdir, mkdirat - ein Verzeichnis erzeugen BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include int mkdir(const char *Pfadname, mode_t Modus); #include /* Definition der AT_*-Konstanten */ #include 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 ublich noch von der umask des Prozesses verandert: Ohne Standard-ACL ist der Zugriffsmodus des erzeugten Verzeichnisses (Modus & ~umask & 0777). Die Berucksichtigung weitere Modus-Bits des erzeugten Verzeichnisses hangen vom Betriebssystem ab. Fur Linux gelten die folgenden ANMERKUNGEN. Das neu erzeugte Verzeichnis tragt 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 eingehangt wurde (mount -o bsdgroups oder synonym mount -o grpid), erbt das neue Verzeichnis die Gruppeneigentumerschaft 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(), ausser den hier beschriebenen Unterschieden. Falls der in Pfadname ubergebene 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() fur 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) fur eine Beschreibung der Notwendigkeit von mkdirat(). RUCKGABEWERT mkdir() und mkdirat() geben bei Erfolg 0 zuruck. Bei einem Fehler wird -1 zuruckgegeben 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 gultiger Dateideskriptor. EDQUOT Das Kontingent des Benutzers an Datentragerblocken oder Inodes auf dem Dateisystem ist ausgeschopft. 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 fur Sie zuganglichen Adressraum heraus. EINVAL Die letzte Komponente (>>basename<<) von Pfadname des neuen Verzeichnisses ist ungultig (beispielsweise enthalt sie Zeichen, die im zugrunde liegenden Dateisystem nicht erlaubt sind). ELOOP Bei der Auflosung von Pfadname wurden zu viele symbolische Links gefunden. EMLINK Die Anzahl von Links zum >>Elternverzeichnis<< wurde LINK_MAX uberschreiten. ENAMETOOLONG Pfadname war zu lang. ENOENT Eine Verzeichniskomponente von Pfadname existiert nicht oder ist ein toter symbolischer Link. ENOMEM Es war nicht genugend Kernelspeicher verfugbar. ENOSPC Das Gerat, welches Pfadname enthalt, hat keinen Platz fur ein neues Verzeichnis. ENOSPC Das neue Verzeichnis kann nicht erzeugt werden, da das Plattenkontingent des Benutzers erschopft 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 Gerat, welches Pfadname enthalt, erlaubt keine Erstellung von Verzeichnissen. EROFS Pfadname bezieht sich auf eine Datei auf einem schreibgeschutzten Dateisystem. VERSIONEN Unter Linux, abgesehen von den Zugriffs-Bits, wird der Modus S_ISVTX ebenfalls anerkannt. Anmerkungen zur Glibc Unter alteren Kernels, in denen mkdirat() nicht verfugbar 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. STANDARDS POSIX.1-2008. GESCHICHTE mkdir() SVr4, BSD, POSIX.1-2001. mkdirat() Linux 2.6.16, Glibc 2.4. ANMERKUNGEN Es gibt noch viele Ungereimtheiten im NFS zugrunde liegenden Protokoll. Einige davon betreffen mkdir(). 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) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Schulze , Ralf Baumert , Daniel Kobras , Martin Eberhard Schauer , Helge Kreutzmann , Mario Blattermann und Dr. Tobias Quathamer erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 mkdir(2)