MKDIR(2)

BEZEICHNUNG
mkdir - Erzeugen eines Verzeichnisses

ÜBERSICHT
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>

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

BESCHREIBUNG
mkdir versucht eine Directory mit dem angegebenem Namen zu erzeugen. mode legt die Zugriffsrechte fest, die wie üblich noch von der umask des Prozesses verändert werden: Die Zugriffsrechte des Verzeichnisses ist (mode & ~umask). Die effektive uid des Prozesses ist der Besitzer des so erzeugten Verzeichnisses. Wenn das das neue Verzeichnis enthaltene Verzeichnis set-group-id gesetzt hat, oder wenn das Dateisystem mit den BSD Gruppen-Eigenschaften gemountet wurde, erbt das neue Verzeichnis die Gruppen-ID. Anderenfalls wird die Gruppe des erzeugenden Prozesses Besitzer des Verzeichnisses. Wenn das beinhaltende Verzeichnis set-group-id gesetzt hat, wird das neue Verzeichnis dieses ebenfalls haben.

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

FEHLER

EEXIST
    pathname existiert bereits (jedoch nicht notwendigerweise als Verzeichnis).

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

EACCES
    Das beinhaltende Verzeichnis gibt dem Prozeß keine Schreibberechtigung oder eines der Verzeichnisse in pathname erlaubt keine Suche (-x-).

ENAMETOOLONG
    pathname ist zu lang.

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

ENOTDIR
    Eine Komponente von pathname, die als Verzeichnis benutzt werden sollte, ist keines.

ENOMEM
    Im Kernel ist zuwenig Speicher vorhanden.

EROFS
    pathname zeigt auf eine Datei auf einem Dateisystem, das schreibgeschützt ist, es wurde jedoch Schreibzugriff gefordert.

ELOOP
    pathname enthält einen Verweis auf einen zirkulierenden symbolischen Link, also einen symbolischen Link, der im Endeffekt wieder auf sich selbst zeigt.

ENOSPC
    Das Gerät, das pathname enthält, hat keinen Platz mehr für ein neues Verzeichnis. ENOSPC Das neue Verzeichnis kann nicht erzeugt werden, da der Disk-Quota des Users erschöpft ist

BUGS
In einigen älteren Versionen von Linux (zum Beispiel 0.99pl7) erlaubten alle normalen Dateisysteme ab und zu die Erzeugung von zwei Dateien im gleichen Verzeichnis mit dem gleichen Namen. Dieses tritt nur selten auf und nur auf Systemen mit hoher Systemlast. Es wird angenommen, daß dieser Fehler im Minix-Dateisystem im Pre-Release von Linux 0.99pl8 behoben wurde und man hofft, daß er anschließend in den anderen Dateisystemen gefixt wurde. Es gibt noch viele Ungereimtheiten im NFS zugrundeliegenden Protokoll.

SIEHE AUCH
read(2), write(2), fcntl(2), close(2), unlink(2), open(2), mknod(2), stat(2), umask(2), mount(2), socket(2), socket(2), fopen(3).