.\" -*- coding: UTF-8 -*-
.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
.\"             and Copyright (C) 1993 Michael Haardt
.\"             and Copyright (C) 1993,1994 Ian Jackson
.\"		and Copyright (C) 2006, 2014, Michael Kerrisk
.\"
.\" SPDX-License-Identifier: GPL-1.0-or-later
.\"
.\" Modified 1996-08-18 by urs
.\" Modified 2003-04-23 by Michael Kerrisk
.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH mknod 2 "5. Februar 2023" "Linux man\-pages 6.03" 
.SH BEZEICHNUNG
mknod, mknodat \- erstellt eine reguläre oder eine Spezialdatei
.SH BIBLIOTHEK
Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP)
.SH ÜBERSICHT
.nf
\fB#include <sys/stat.h>\fP
.PP
\fBint mknod(const char *\fP\fIPfadname\fP\fB, mode_t \fP\fIModus\fP\fB, dev_t \fP\fIGerät\fP\fB);\fP
.PP
\fB#include <fcntl.h>           \fP/* Definition der AT_*\-Konstanten */
\fB#include <sys/stat.h>\fP
.PP
\fBint mknodat(int \fP\fIdirfd\fP\fB, const char *\fP\fIPfadname\fP\fB, mode_t \fP\fIModus\fP\fB, dev_t \fP\fIGerät\fP\fB);\fP
.fi
.PP
.RS -4
Mit Glibc erforderliche Feature\-Test\-Makros (siehe
\fBfeature_test_macros\fP(7)):
.RE
.PP
\fBmknod\fP():
.nf
.\"    || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
    _XOPEN_SOURCE >= 500
        || /* Seit Glibc 2.19: */ _DEFAULT_SOURCE
        || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
.fi
.SH BESCHREIBUNG
Der Systemaufruf \fBmknod\fP() erstellt einen Dateisystem\-Knoten (Datei,
Gerätedatei oder FIFO, auch bekannt als »named pipe«) namens \fIPfadname\fP und
mit den Attributen, die in \fIModus\fP und \fIGerät\fP angegeben wurden.
.PP
Das Argument \fIModus\fP 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 \fBinode\fP(7) aufgeführten Dateimodusbits sein.
.PP
Der Dateimodus wird durch die \fIumask\fP des Prozesses auf die übliche Weise
festgelegt: Ohne Standard\-ACL sind die Zugriffsrechte des erzeugten Knotens
also (\fIModus\fP & \[ti]\fIumask\fP).
.PP
.\" (S_IFSOCK since Linux 1.2.4)
Der Dateityp muss aus \fBS_IFREG\fP, \fBS_IFCHR\fP, \fBS_IFBLK\fP und \fBS_IFIFO\fP
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 \fBS_IFREG\fP).
.PP
Bei den Typen \fBS_IFCHR\fP und \fBS_IFBLK\fP legt \fIGerät\fP die Major\- und die
Minor\-Nummer der neu erzeugten Gerätedatei fest; anderenfalls wird \fIGerät\fP
ignoriert. (\fBmakedev\fP(3) kann helfen, den Wert für \fIGerät\fP zu ermitteln.)
.PP
Falls \fIPfadname\fP schon existiert oder ein symbolischer Link ist, schlägt
dieser Aufruf mit dem Fehler \fBEEXIST\fP fehl.
.PP
.\"
.\"
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.
.SS mknodat()
Der Systemaufruf \fBmknodat\fP() funktioniert genauso wie \fBmknod\fP(), außer den
hier beschriebenen Unterschieden.
.PP
Falls der in \fIPfadname\fP übergebene Pfadname relativ ist wird er als relativ
zu dem im Dateideskriptor \fIdirfd\fP referenzierten Verzeichnis interpretiert
(statt relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses,
wie es bei \fBmknod\fP() für einen relativen Pfadnamen erfolgt).
.PP
Falls \fIPfadname\fP relativ ist und \fIdirfd\fP den besonderen Wert \fBAT_FDCWD\fP
annimmt wird \fIPfadname\fP als relativ zum aktuellen Arbeitsverzeichnis des
aufrufenden Prozesses interpretiert (wie \fBmknod\fP()).
.PP
Falls \fIPfadname\fP absolut ist, wird \fIVerzdd\fP ignoriert.
.PP
Lesen Sie \fBopenat\fP(2) für eine Beschreibung der Notwendigkeit von
\fBmkdirat\fP().
.SH RÜCKGABEWERT
Bei Erfolg geben \fBmknod\fP() und \fBmknodat\fP() null zurück. Bei einem Fehler
wird \-1 zurückgegeben und \fIerrno\fP gesetzt, um den Fehler anzuzeigen.
.SH FEHLER
.TP 
\fBEACCES\fP
Das Elternverzeichnis gibt dem Prozess keine Schreibberechtigung oder eines
der Verzeichnisse im Pfad\-Präfix von \fIPfadname\fP gewährte keine
Suchberechtigung; siehe auch \fBpath_resolution\fP(7).
.TP 
\fBEBADF\fP
\fB(\fPmknodat\fB())\fP Der \fIPfadname\fP ist relativ, aber \fIVerzdd\fP ist weder
\fBAT_FDCWD\fP noch ein gültiger Dateideskriptor.
.TP 
\fBEDQUOT\fP
Das Kontingent des Benutzers an Datenträgerblöcken oder Inodes auf dem
Dateisystem ist ausgeschöpft.
.TP 
\fBEEXIST\fP
\fIPfadname\fP existiert bereits. Das umfasst auch den Fall, dass \fIPfadname\fP
ein symbolischer Link ist \- egal ob der ins Leere weist oder nicht.
.TP 
\fBEFAULT\fP
\fIPfadname\fP zeigt aus dem für Sie zugänglichen Adressraum heraus.
.TP 
\fBEINVAL\fP
\fIModus\fP verlangte etwas Anderes zu erstellen als eine reguläre Datei, eine
Gerätedatei, einen FIFO oder einen Socket.
.TP 
\fBELOOP\fP
Bei der Auflösung von \fIPfadname\fP wurden zu viele symbolische Links
gefunden.
.TP 
\fBENAMETOOLONG\fP
\fIPfadname\fP war zu lang.
.TP 
\fBENOENT\fP
Eine Verzeichniskomponente von \fIPfadname\fP existiert nicht oder ist ein
toter symbolischer Link.
.TP 
\fBENOMEM\fP
Es war nicht genügend Kernelspeicher verfügbar.
.TP 
\fBENOSPC\fP
Das Gerät, welches \fIPfadname\fP enthält, hat keinen Platz für den neuen
Knoten.
.TP 
\fBENOTDIR\fP
Eine als Verzeichnis benutzte Komponente von \fIPfadname\fP ist kein
Verzeichnis.
.TP 
\fBENOTDIR\fP
\fB(\fPmknodat\fB())\fP \fIPfadname\fP ist relativ und \fIVerzdd\fP ist ein
Dateideskriptor, der sich auf eine Datei bezieht, die kein Verzeichnis ist.
.TP 
\fBEPERM\fP
.\" For UNIX domain sockets and regular files, EPERM is returned only in
.\" Linux 2.2 and earlier; in Linux 2.4 and later, unprivileged can
.\" use mknod() to make these files.
\fIModus\fP 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 \fBCAP_MKNOD\fP\-Capability). Dieser Fehler
wird auch zurückgegeben, wenn das Dateisystem, das \fIPfadname\fP enthält, den
angeforderten Knotentyp nicht unterstützt.
.TP 
\fBEROFS\fP
\fIPfadname\fP bezieht sich auf eine Datei auf einem schreibgeschützten
Dateisystem.
.SH VERSIONEN
\fBmknodat\fP() wurde zu Linux in Version 2.6.16 hinzugefügt;
Bibliotheksunterstützung wurde zu Glibc in Version 2.4 hinzugefügt.
.SH STANDARDS
.\" The Linux version differs from the SVr4 version in that it
.\" does not require root permission to create pipes, also in that no
.\" EMULTIHOP, ENOLINK, or EINTR error is documented.
\fBmknod\fP(): SVr4, 4.4BSD, POSIX.1\-2001 (siehe aber auch das Folgende),
POSIX.1\-2008.
.PP
\fBmknodat\fP(): POSIX.1\-2008.
.SH ANMERKUNGEN
POSIX.1\-2001 sagt: »Die einzige portable Verwendung von \fBmknod\fP() ist das
Erstellen eines FIFOs. Falls \fIModus\fP nicht gleich \fBS_IFIFO\fP ist oder
\fIGerät\fP ist nicht 0, ist das Verhalten von \fBmknod\fP() unbestimmt«. Trotzdem
sollte man heutzutage für diesen Zweck \fBmknod\fP() niemals verwenden und
stattdessen die speziell für diesen Zweck bestimmte Funktion \fBmkfifo\fP(3)
einsetzen.
.PP
.\" and one should make UNIX domain sockets with socket(2) and bind(2).
Unter Linux kann \fBmknod\fP() nicht zur Erzeugung von Verzeichnissen verwendet
werden. Man sollte Verzeichnisse mit \fBmkdir\fP(2) erzeugen.
.PP
Es gibt in dem NFS zugrunde liegenden Protokoll viele
Unzulänglichkeiten. Einige davon betreffen \fBmknod\fP() und \fBmknodat\fP().
.SH "SIEHE AUCH"
\fBmknod\fP(1), \fBchmod\fP(2), \fBchown\fP(2), \fBfcntl\fP(2), \fBmkdir\fP(2),
\fBmount\fP(2), \fBsocket\fP(2), \fBstat\fP(2), \fBumask\fP(2), \fBunlink\fP(2),
\fBmakedev\fP(3), \fBmkfifo\fP(3), \fBacl\fP(5), \fBpath_resolution\fP(7)
.PP
.SH Ü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.
.PP
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
.PP
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an die
.MT debian-l10n-german@lists.debian.org
Mailingliste der Übersetzer
.ME .