Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       mknod - erstellt eine reguläre oder eine Spezialdatei

ÜBERSICHT

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

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

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       mknod():
           _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

BESCHREIBUNG

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

       Das Argument mode legt sowohl die anzuwendenden Berechtigungen als auch  den  Typ  des  zu
       erstellenden  Knotens  fest.  Es sollte eine Verbindung (mittels bitweisem ODER) eines der
       weiter unten angegebenen Typen und den Zugriffsrechten für den neuen Knoten sein.

       Die Zugriffsrechte werden durch die umask des Prozesses auf die übliche Weise  festgelegt;
       die Zugriffsrechte des erzeugten Knotens sind also (mode & ~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  dev  die Major- und die Minor-Nummer der neu
       erzeugten Gerätedatei fest; anderenfalls wird dev ignoriert. (makedev(3) kann helfen,  den
       Wert für dev zu ermitteln.)

       Falls  pathname  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  übergeordneten  Verzeichnisses;  anderenfalls gehört er der effektiven
       Gruppen-ID des aufrufenden Prozesses.

RÜCKGABEWERT

       Bei Erfolg gibt mknod() null zurück. Bei einem Fehler  wird  -1  zurückgegeben  und  errno
       entsprechend gesetzt.

FEHLER

       EACCES Das übergeordnete Verzeichnis gibt dem Prozess keine Schreibberechtigung oder eines
              der Verzeichnisse im Pfad-Präfix  von  pathname  gewährte  keine  Suchberechtigung;
              siehe auch path_resolution(7).

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

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

       EFAULT pathname zeigt aus dem für Sie zugänglichen Adressraum heraus.

       EINVAL mode   verlangte   etwas  Anderes  zu  erstellen  als  eine  reguläre  Datei,  eine
              Gerätedatei, einen FIFO oder einen Socket.

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

       ENAMETOOLONG
              pathname war zu lang.

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

       ENOMEM Es war nicht genügend Kernel-Speicher verfügbar.

       ENOSPC Das Gerät, welches pathname enthält, hat keinen Platz für den neuen Knoten.

       ENOTDIR
              Eine als Verzeichnis benutzte Komponente von pathname ist kein Verzeichnis.

       EPERM  mode  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  pathname  enthält,  den  angeforderten
              Knotentyp nicht unterstützt.

       EROFS  pathname bezieht sich auf eine Datei auf einem schreibgeschützten Dateisystem.

KONFORM ZU

       SVr4, 4.4BSD, POSIX.1-2001 (siehe aber auch das Folgende).

ANMERKUNGEN

       POSIX.1-2001  sagt:  »Die  einzige portable Verwendung von mknod() ist das Erstellen eines
       FIFOs. Falls mode nicht gleich S_IFIFO ist oder dev 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  dieser Aufruf nicht zur Erzeugung von Verzeichnissen verwendet werden.
       Man sollte Verzeichnisse mit mkdir(2) erzeugen.

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

SIEHE AUCH

       chmod(2),   chown(2),   fcntl(2),  mkdir(2),  mknodat(2),  mount(2),  socket(2),  stat(2),
       umask(2), unlink(2), makedev(3), mkfifo(3), path_resolution(7)

KOLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung   dieser   Handbuchseite   wurde   von   Lars    J.    Brandt
       <ljbrandt@jorma.ping.de>,  Martin  Eberhard  Schauer  <Martin.E.Schauer@gmx.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 <debian-l10n-german@lists.debian.org>.