MKDIR(2)

BEZEICHNUNG
mkdir - Erzeugt ein Verzeichnis

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

int mkdir(const char *pathname, mode_t mode);

BESCHREIBUNG
mkdir versucht, ein Verzeichnis mit dem Namen pathname anzulegen. Zusammen mit der umask des aktuellen Prozesses legt der Parameter mode die Zugriffsrechte des neuen Verzeichnisses fest. Die Rechte werden bestimmt über (mode & ~umask). Der Besitzer des neuen Verzeichnisses ergibt sich aus der effektiven Benutzer-ID des aufrufenden Prozesses. Welche Gruppe das Verzeichnis besitzt, hängt im Normalfall von der effektiven Gruppen-ID des aufrufenden Prozesses ab. Ist jedoch im übergeordneten Verzeichnis das Set-Group-ID-Bit gesetzt oder wurde das betreffende Dateisystem mit BSD-Gruppeneigenschaften gemountet, so erbt das neue Verzeichnis die Gruppen-ID des übergeordneten Verzeichnisses. Ist das Set-Group-ID-Bit im übergeordneten Verzeichnis gesetzt, so wird es auch im neuen Verzeichnis übernommen.

RÜCKGABEWERT
mkdir gibt bei Erfolg 0 zurück und -1, wenn ein Fehler aufgetreten ist. Im Fehlerfall wird errno entsprechend gesetzt.

FEHLER

EPERM
    Das Dateisystem, das pathname enthält, unterstützt nicht das Erstellen von Verzeichnissen.

EEXIST
    pathname existiert bereits (nicht unbedingt als Verzeichnis). Das schließt den Fall ein, dass pathname ein symbolischer Verweis ist, gleichgültig ob das referenzierte Objekt existiert oder nicht.

EFAULT
    pathname zeigt auf Speicher außerhalb des adressierbaren Bereichs.

EACCES
    Das übergeordnete Verzeichnis gibt dem Prozess keine Schreibberechtigung oder eines der Verzeichnisse in pathname erlaubt keine Suche (-x-).

ENAMETOOLONG
    pathname ist zu lang.

ENOENT
    Eine Komponente in pathname existiert nicht oder verweist symbolisch auf ein nicht existierendes Objekt.

ENOTDIR
    Eine Komponente in pathname, die als Verzeichnis benutzt wurde, ist gar kein Verzeichnis.

ENOMEM
    Dem Kernel steht zuwenig Speicher zur Verfügung.

EROFS
    pathname zeigt auf ein schreibgeschütztes Dateisystem.

ELOOP
    In pathname sind zu viele symbolische Verweise enthalten. Häufig wird dieser Fehler durch einen oder mehrere symbolische Verweise verursacht, die letztendlich auf sich selbst zeigen und dadurch eine Schleife bilden.

ENOSPC
    Auf dem Gerät, das pathname enthält, ist entweder nicht mehr genug Platz für ein neues Verzeichnis oder die Disk-Quota des Benutzer ist bereits erschöpft.

KONFORM ZU
SVr4, POSIX, BSD, SYSV, X/OPEN. SVr4 beschreibt zusätzlich die Fehler EIO, EMULTIHOP und ENOLINK; ELOOP ist in POSIX.1 nicht erwähnt.

BUGS
In dem NFS zugrundeliegenden Protokoll gibt es zahlreiche Ungereimtheiten. Manche davon wirken sich auch auf mkdir aus.

SIEHE AUCH
mkdir(1), chmod(2), mknod(2), mount(2), rmdir(2), stat(2), umask(2), unlink(2).