mkdir

Autres langues

Langue: de

Version: 17. August 2001 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

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).