.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" This manpage is Copyright (C) 1992 Drew Eckhardt; .\" 1993 Michael Haardt .\" 1993,1994 Ian Jackson. .\" You may distribute it under the terms of the GNU General .\" Public Licence. It comes with NO WARRANTY. .\" .\" Übersetzung : Lars J. Brandt .\" Modified Mon Jun 10 12:46:10 1996 by Martin Schulze (joey@linux.de) .\" .TH MKNOD 2 "29. März 1994" "Linux 1.0" "Systemaufrufe" .SH BEZEICHNUNG mknod \- erstellt eine Spezialdatei .SH ÜBERBLICK .nf .B #include .B #include .B #include .B #include .sp .BI "int mknod(const char *" pathname ", mode_t " typ ", dev_t " dev ); .fi .SH BESCHREIBUNG .B mknod erstellt eine spezielle Datei (FIFO oder named pipe), eine Gerätedatei für ein zeichenorientiertes Gerät (character device) oder eine Gerätedatei für ein blockorientiertes Gerät (block device) mit dem Namen .IR pathname ", spezifiziert durch " typ " und " dev . .I typ legt zugleich die Zugriffsrechte und die Art der zu erstellenden Datei fest. Es sollte eine Verbindung (mit bitweisem ODER) unter der Verwendung der weiter unten angegebenen Typen und den Zugriffsrechten für die neue Datei sein. Die Zugriffsrechte werden normalerweise durch die .BR umask des Prozesses festgelegt; die Zugriffsrechte sind also: .BR "(typ & ~umask)" . Hier sind die verschiedenen Typen: .BR S_IFREG ", " S_IFCHR ", " S_IFBLK " und " S_IFIFO . Von links nach rechts gelesen ergibt sich als erstes eine normale, leere Datei, eine Gerätedatei für ein zeichenorientiertes Gerät, eine Gerätedatei für ein blockorientiertes Gerät und zuletzt ein FIFO (named pipe). Bei den Typen .BR S_IFCHR " und " S_IFBLK legt .I dev die Major- und die Minor Nummer der neu erzeugten Datei fest. Bei den anderen Typen wird diese Angabe ignoriert. Die neu erzeugte Datei wird von der effektiven UID des Prozesses, der sie aufruft, besessen. Wenn das Verzeichnis in der sich die Datei befindet aber das SGID-Bit gesetzt hat, oder das Filesystem unter BSD gemountet ist, erhält die Datei die Gruppenrechte des Verzeichnisses aus dem heraus sie aufgerufen wird. .SH RÜCKGABEWERT .BR mknod meldet bei Erfolg '0', ansonsten wird '-1' zurückgegeben und .I errno entsprechend gesetzt. .SH FEHLERMELDUNGEN .TP .B EPERM Tritt auf, wenn jemand anderes als der Superuser versucht eine Datei zu erstellen, die nicht vom Typ FIFO ist. Kann auch auftreten, wenn das Dateisystem in der die Datei erstellt werden soll, den angeforderten Dateityp nicht unterstützt. .TP .B EINVAL .IR typ Es wurde versucht, eine andere Datei als eine normale, eine Gerätedatei oder eine FIFO zu erstellen. .TP .B EEXIST .IR pathname Der angegebene Dateiname existiert bereits. .TP .B EFAULT .IR pathname " zeigt auf einen ungültigen Adressbereich. " .TP .B EACCES Das Verzeichnis, aus dem heraus die Datei aufgerufen wurde, erlaubt keinen Schreibzugriff, oder eins der Verzeichnisse in .IR pathname erlaubt nicht das Ausführen. .TP .B ENAMETOOLONG .IR pathname " war zu lang." .TP .B ENOENT Ein (oder mehrere) Verzeichnisse im Pfad von .I pathname existieren nicht, oder es ist ein defekter symbolischer Link vorhanden. .TP .B ENOTDIR Ein (oder mehrere) Bestandteile im Pfad von .I pathname sind ganz einfach kein Verzeichnis. .TP .B ENOMEM Kein freier Speicher mehr verfügbar. .TP .B EROFS Tritt auf, wenn .I pathname auf einem Read-Only Filesystem liegt, aber trotzdem Schreibzugriff verlangt. .TP .B ELOOP .I pathname Dateiname zeigt auf einen anderen Dateinamen, der auf sich selbst zeigt. .TP .B ENOSPC Das Dateisystem (Device) auf dem .I dateiname erstellt werden soll, hat keinen Platz mehr frei. .SH FEHLER In manchen alten Linux-Versionen (z.B. 0.99pl7) erlaubten die normalen Dateisysteme manchmal die Erstellung von zwei Dateien im gleichen Verzeichnis mit gleichem Namen. Dies trat aber nur selten - und dann nur in extrem (über)belasteten Systemen auf. Behoben wurde dieser Fehler schon im Minix-Filesystem im Linux 0.99pl8 pre-release und wurde (hoffentlich) in allen anderen Filsystemen kurz danach auch ausgebügelt. .B mknod kann nicht zur Erstellung von Verzeichnissen oder zur Erzeugung von Sockets verwendet werden, weiterhin ist es anderen als der Superuserin nicht möglich, andere Dateien als eine FIFO zu erstellen. Es gibt auch noch einige Ungereimtheiten im Zusammenhang mit NFS. .SH SIEHE AUCH .BR read (2), .BR write (2), .BR fcntl (2), .BR close (2), .BR unlink (2), .BR open (2), .BR mkdir (2), .BR stat (2), .BR umask (2), .BR mount (2), .BR socket (2), .BR socket (2), .BR fopen (3).