Man page - mknodat(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

mknod

BEZEICHNUNG
BIBLIOTHEK
ÜBERSICHT
BESCHREIBUNG
mknodat()
RÜCKGABEWERT
FEHLER
VERSIONEN
STANDARDS
GESCHICHTE
ANMERKUNGEN
SIEHE AUCH
ÜBERSETZUNG

BEZEICHNUNG

mknod, mknodat - erstellt eine regulÀre oder eine Spezialdatei

BIBLIOTHEK

Standard-C-Bibliothek ( libc , -lc )

ÜBERSICHT

#include <sys/stat.h>

int mknod(const char * Pfadname , mode_t Modus , dev_t GerÀt );

#include <fcntl.h> /* Definition der AT_*-Konstanten */
#include <sys/stat.h>

int mknodat(int Verzdd , const char * Pfadname , mode_t Modus , dev_t GerÀt );

Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros (7)):

mknod ():
_XOPEN_SOURCE >= 500
|| /* Seit Glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

BESCHREIBUNG

Der Systemaufruf mknod () erstellt einen Dateisystem-Knoten (Datei, GerÀtedatei oder FIFO, auch bekannt als »named pipe«) namens Pfadname und mit den Attributen, die in Modus und GerÀt angegeben wurden.

Das Argument Modus gibt sowohl den anzuwendenden Dateimodus als auch den Typ des zu erstellenden Knotens an. Es sollte eine Verbindung (mittels bitweisem ODER) eines der weiter unten angegebenen Typen und einer oder mehr der in inode (7) aufgefĂŒhrten Dateimodusbits sein.

Der Dateimodus wird durch die umask des Prozesses auf die ĂŒbliche Weise festgelegt: Ohne Standard-ACL sind die Zugriffsrechte des erzeugten Knotens also ( Modus & ~ umask ).

Der Dateityp muss aus S_IFREG , S_IFCHR , S_IFBLK und S_IFIFO gewĂ€hlt werden. In dieser Reihenfolge bestimmen sie eine regulĂ€re Datei (die leer angelegt wird), eine GerĂ€tedatei fĂŒr ein zeichenorientiertes GerĂ€t, eine GerĂ€tedatei fĂŒr ein blockorientiertes GerĂ€t, einen FIFO (named pipe) und schließlich einen UNIX Domain Socket. (Der Dateityp null ist Ă€quivalent zu S_IFREG ).

Bei den Typen S_IFCHR und S_IFBLK legt GerĂ€t die Major- und die Minor-Nummer der neu erzeugten GerĂ€tedatei fest; anderenfalls wird GerĂ€t ignoriert. ( makedev (3) kann helfen, den Wert fĂŒr GerĂ€t zu ermitteln.)

Falls Pfadname schon existiert oder ein symbolischer Link ist, schlÀgt dieser Aufruf mit dem Fehler EEXIST fehl.

Der neu erzeugte Knoten lÀuft unter der effektiven UID des aufrufenden Prozesses. Falls das Verzeichnis, in dem sich der Knoten befindet, das »set-group-ID«-Bit gesetzt hat oder das Dateisystem mit BSD-Gruppensemantik eingehÀngt ist, erbt der neue Knoten die Gruppenrechte des Elternverzeichnisses; anderenfalls gehört er der effektiven Gruppenkennung des aufrufenden Prozesses.

mknodat()

Der Systemaufruf mknodat () funktioniert genauso wie mknod (), außer den hier beschriebenen Unterschieden.

Falls der in Pfadname ĂŒbergebene 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 mknod () fĂŒr 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 mknod ()).

Falls Pfadname absolut ist, wird Verzdd ignoriert.

Lesen Sie openat (2) fĂŒr eine Beschreibung der Notwendigkeit von mkdirat ().

RÜCKGABEWERT

Bei Erfolg geben mknod () und mknodat () null zurĂŒck. Bei einem Fehler wird -1 zurĂŒckgegeben und errno gesetzt, um den Fehler anzuzeigen.

FEHLER

EACCES

Das Elternverzeichnis gibt dem Prozess keine Schreibberechtigung oder eines der Verzeichnisse im Pfad-PrÀfix von Pfadname gewÀhrte keine Suchberechtigung; siehe auch path_resolution (7).

EBADF

( mknodat ()) Der Pfadname ist relativ, aber Verzdd ist weder AT_FDCWD noch ein gĂŒltiger Dateideskriptor.

EDQUOT

Das Kontingent des Benutzers an DatentrÀgerblöcken oder Inodes auf dem Dateisystem ist ausgeschöpft.

EEXIST

Pfadname existiert bereits. Das umfasst auch den Fall, dass Pfadname ein symbolischer Link ist - egal ob der ins Leere weist oder nicht.

EFAULT

Pfadname zeigt aus dem fĂŒr Sie zugĂ€nglichen Adressraum heraus.

EINVAL

Modus verlangte etwas Anderes zu erstellen als eine regulÀre Datei, eine GerÀtedatei, einen FIFO oder einen Socket.

ELOOP

Bei der Auflösung von Pfadname wurden zu viele symbolische Links gefunden.

ENAMETOOLONG

Pfadname war zu lang.

ENOENT

Eine Verzeichniskomponente von Pfadname existiert nicht oder ist ein toter symbolischer Link.

ENOMEM

Es war nicht genĂŒgend Kernelspeicher verfĂŒgbar.

ENOSPC

Das GerĂ€t, welches Pfadname enthĂ€lt, hat keinen Platz fĂŒr den neuen Knoten.

ENOTDIR

Eine als Verzeichnis benutzte Komponente von Pfadname ist kein Verzeichnis.

ENOTDIR

( mknodat ()) Pfadname ist relativ und Verzdd ist ein Dateideskriptor, der sich auf eine Datei bezieht, die kein Verzeichnis ist.

EPERM

Modus verlangte etwas Anderes zu erstellen als eine regulĂ€re Datei, einen FIFO (named pipe) oder einen UNIX Domain Socket und der Aufrufende ist nicht privilegiert (Linux: ihm fehlt die CAP_MKNOD -Capability). Dieser Fehler wird auch zurĂŒckgegeben, wenn das Dateisystem, das Pfadname enthĂ€lt, den angeforderten Knotentyp nicht unterstĂŒtzt.

EROFS

Pfadname bezieht sich auf eine Datei auf einem schreibgeschĂŒtzten Dateisystem.

VERSIONEN

POSIX.1-2001 sagt: »Die einzige portable Verwendung von mknod () ist das Erstellen eines FIFOs. Falls Modus nicht gleich S_IFIFO ist oder GerĂ€t ist nicht 0, ist das Verhalten von mknod () unbestimmt«. Trotzdem sollte man heutzutage fĂŒr diesen Zweck mknod () niemals verwenden und stattdessen die speziell fĂŒr diesen Zweck bestimmte Funktion mkfifo (3) einsetzen.

Unter Linux kann mknod () nicht zur Erzeugung von Verzeichnissen verwendet werden. Man sollte Verzeichnisse mit mkdir (2) erzeugen.

STANDARDS

POSIX.1-2008.

GESCHICHTE

mknod ()

SVr4, 4.4BSD, POSIX.1-2001 (aber siehe VERSIONEN).

mknodat ()

Linux 2.6.16, Glibc 2.4. POSIX.1-2008.

ANMERKUNGEN

Es gibt in dem NFS zugrunde liegenden Protokoll viele UnzulÀnglichkeiten. Einige davon betreffen mknod () und mknodat ().

SIEHE AUCH

mknod (1), chmod (2), chown (2), fcntl (2), mkdir (2), mount (2), socket (2), stat (2), umask (2), unlink (2), makedev (3), mkfifo (3), acl (5), path_resolution (7)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Lars J. Brandt <ljbrandt@jorma.ping.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Helge Kreutzmann <debian@helgefjell.de> und Mario BlĂ€ttermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezĂŒglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ĂŒbernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org .