.\" -*- 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 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH mknod 2 "2. Mai 2024" "Linux man\-pages 6.8" .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 \fP .P \fBint mknod(const char *\fP\fIPfadname\fP\fB, mode_t \fP\fIModus\fP\fB, dev_t \fP\fIGerät\fP\fB);\fP .P \fB#include \fP/* Definition der AT_*\-Konstanten */ \fB#include \fP .P \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 .P .RS -4 Mit Glibc erforderliche Feature\-Test\-Makros (siehe \fBfeature_test_macros\fP(7)): .RE .P \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. .P 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. .P 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). .P .\" (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). .P 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.) .P Falls \fIPfadname\fP schon existiert oder ein symbolischer Link ist, schlägt dieser Aufruf mit dem Fehler \fBEEXIST\fP fehl. .P .\" .\" 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. .P 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). .P 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()). .P Falls \fIPfadname\fP absolut ist, wird \fIVerzdd\fP ignoriert. .P 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 (\fBmknodat\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 (\fBmknodat\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 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. .P .\" 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. .SH STANDARDS POSIX.1\-2008. .SH GESCHICHTE .TP \fBmknod\fP() .\" 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. SVr4, 4.4BSD, POSIX.1\-2001 (aber siehe VERSIONEN). .TP \fBmknodat\fP() Linux 2.6.16, Glibc 2.4. POSIX.1\-2008. .SH ANMERKUNGEN 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 , Martin Eberhard Schauer , Helge Kreutzmann und Mario Blättermann 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 .