Available in

(1) (2) (3) (1)/cs (1)/de (2)/de (1)/es (2)/es (1)/fi (1)/fr (2)/fr (1)/hu (1)/it (1)/ja (2)/ja (1)/ko (2)/ko (1)/nl (2)/nl (1)/pl (1)/pt (2)/pt (1)/ru (2)/ru (1)/tr (1)/zh_cn (1)/zh_tw

Contents

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

COMMENTS

blog comments powered by Disqus