Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       mknod - erstellt eine Spezialdatei

       Diese  Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie
       die englischsprachige Handbuchseite zu Rate, indem Sie

              man -LC 2 mknod

       eingeben.

"UBERBLICK

       #include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>
       #include <unistd.h>

       int mknod(const char *pathname, mode_t typ, dev_t dev);

BESCHREIBUNG

       mknod erstellt eine  spezielle  Datei  (FIFO  oder  named  pipe),  eine
       Geratedatei  fur  ein zeichenorientiertes Gerat (character device) oder
       eine Geratedatei fur ein blockorientiertes Gerat (block device) mit dem
       Namen pathname, spezifiziert durch typ und dev.

       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
       fur die neue Datei sein.

       Die Zugriffsrechte werden normalerweise durch die umask  des  Prozesses
       festgelegt; die Zugriffsrechte sind also: (typ & ~umask).

       Hier  sind  die  verschiedenen  Typen:  S_IFREG,  S_IFCHR,  S_IFBLK und
       S_IFIFO.  Von links nach rechts gelesen ergibt  sich  als  erstes  eine
       normale,  leere  Datei,  eine  Geratedatei  fur ein zeichenorientiertes
       Gerat, eine Geratedatei fur ein blockorientiertes Gerat und zuletzt ein
       FIFO (named pipe).

       Bei  den  Typen  S_IFCHR  und S_IFBLK legt 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, erhalt die Datei die  Gruppenrechte  des  Verzeichnisses
       aus dem heraus sie aufgerufen wird.

R"UCKGABEWERT

       mknod  meldet  bei  Erfolg  '0',  ansonsten wird '-1' zuruckgegeben und
       errno entsprechend gesetzt.

FEHLERMELDUNGEN

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

       EINVAL typ  Es wurde versucht, eine andere Datei als eine normale, eine
              Geratedatei oder eine FIFO zu erstellen.

       EEXIST pathname Der angegebene Dateiname existiert bereits.

       EFAULT pathname zeigt auf einen ungultigen Adressbereich.

       EACCES Das Verzeichnis, aus dem  heraus  die  Datei  aufgerufen  wurde,
              erlaubt  keinen  Schreibzugriff,  oder eins der Verzeichnisse in
              pathname erlaubt nicht das Ausfuhren.

       ENAMETOOLONG
              pathname war zu lang.

       ENOENT Ein (oder mehrere) Verzeichnisse im Pfad von pathname existieren
              nicht, oder es ist ein defekter symbolischer Link vorhanden.

       ENOTDIR
              Ein  (oder  mehrere) Bestandteile im Pfad von pathname sind ganz
              einfach kein Verzeichnis.

       ENOMEM Kein freier Speicher mehr verfugbar.

       EROFS  Tritt auf, wenn pathname auf einem Read-Only  Filesystem  liegt,
              aber trotzdem Schreibzugriff verlangt.

       ELOOP  pathname  Dateiname  zeigt auf einen anderen Dateinamen, der auf
              sich selbst zeigt.

       ENOSPC Das Dateisystem (Device) auf dem dateiname erstellt werden soll,
              hat keinen Platz mehr frei.

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 (uber)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 ausgebugelt.

       mknod kann nicht zur Erstellung von Verzeichnissen oder  zur  Erzeugung
       von  Sockets  verwendet  werden,  weiterhin  ist  es  anderen  als  der
       Superuserin nicht moglich, andere Dateien als eine FIFO zu erstellen.

       Es gibt auch noch einige Ungereimtheiten im Zusammenhang mit NFS.

SIEHE AUCH

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

Linux 1.0                        29. Marz 1994                        MKNOD(2)