.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1980, 1991 Regents of the University of California. .\" All rights reserved. .\" .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" %%%LICENSE_END .\" .\" @(#)ioctl.2 6.4 (Berkeley) 3/10/91 .\" .\" Modified 1993-07-23 by Rik Faith .\" Modified 1996-10-22 by Eric S. Raymond .\" Modified 1999-06-25 by Rachael Munns .\" Modified 2000-09-21 by Andries Brouwer .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH IOCTL 2 "11. April 2020" Linux Linux\-Programmierhandbuch .SH BEZEICHNUNG ioctl \- Gerät steuern .SH ÜBERSICHT \fB#include \fP .PP .\" POSIX says 'request' is int, but glibc has the above .\" See https://bugzilla.kernel.org/show_bug.cgi?id=42705 \fBint ioctl(int \fP\fIdd\fP\fB, unsigned long \fP\fIAufruf\fP\fB, …);\fP .SH BESCHREIBUNG Der Systemaufruf \fBioctl\fP() manipuliert die zugrundeliegenden Geräteparameter von Spezialdateien. Im Besonderen können viele Betriebscharakteristika von zeichenorientierten Spezialdateien (z. B. Terminals) durch \fBioctl\fP\-Aufrufe gesteuert werden. Das Argument \fIdd\fP muss ein geöffneter Dateideskriptor sein. .PP Das zweite Argument ist ein geräteabhängiger Aufrufkode. Das dritte Argument ist ein typloser Zeiger auf Speicher. Er ist traditionell \fBchar *\fP\fIargp\fP (aus einer Zeit bevor \fBvoid *\fP gültiges C war) und wird für diese Diskussion so genannt. .PP In einem \fBioctl\fP()\-\fIAufruf\fP ist kodiert, ob das Argument ein \fIin\fP\- oder \fIout\fP\-Parameter ist sowie die Größe des Argumentes \fIargp\fP in Byte. Makros und Definitionen, die in der Spezifikation eines \fBioctl\fP()\-\fIAufrufs\fP benutzt werden, befinden sich in der Datei \fI\fP. Siehe ANMERKUNGEN. .SH RÜCKGABEWERT Üblicherweise wird im Erfolgsfall Null zurückgegeben. Ein paar \fBioctl\fP()\-Aufrufe benutzen den Rückgabewert als Ausgabeparameter und geben bei Erfolg einen nicht negativen Wert zurück. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP entsprechend gesetzt. .SH FEHLER .TP \fBEBADF\fP \fIdd\fP ist kein zulässiger Dateideskriptor. .TP \fBEFAULT\fP \fIargp\fP referenziert einen Speicherbereich, auf den nicht zugegriffen werden kann. .TP \fBEINVAL\fP \fIAufruf\fP oder \fIargp\fP ist nicht gültig. .TP \fBENOTTY\fP \fIdd\fP ist nicht mit einem zeichenorientierten Spezialgerät verbunden. .TP \fBENOTTY\fP Der angegebene Aufruf passt nicht zur Art des Objekts, auf die sich der Dateideskriptor \fIdd\fP bezieht. .SH "KONFORM ZU" Kein einzelner Standard. Argumente, Rückgabewerte und Semantik von \fBioctl\fP(2) variieren je nach angefragtem Gerätetreiber (der Aufruf wird als ein Allheilmittel für alle Operationen benutzt, die nicht sauber in das UNIX\-Stream\-E/A\-Modell passen). .PP Der Systemaufruf \fBioctl\fP erschien in Version 7 von AT&T UNIX. .SH ANMERKUNGEN .\" Um diesen Aufruf zu benutzen, wird ein offener Dateideskriptor benötigt. Der Aufruf von \fBopen\fP(2) hat oft unerwünschte Nebeneffekte, die unter Linux durch Angabe des Schalters \fBO_NONBLOCK\fP vermieden werden können. .SS Ioctl\-Struktur .\" added two sections - aeb Ioctl\-Befehle sind 32\-Bit\-Konstanten. Im Prinzip sind diese Konstanten vollkommen willkürlich, aber es gibt Bestrebungen, etwas Struktur zu etablieren. .PP In der alten Linux\-Situation waren dies hauptsächlich 16\-Bit\-Konstanten, wobei das letzte Byte eine Seriennummer war und das/die vorhergehende(n) Byte(s) den Typ des Treibers anzeigten. Manchmal wurde die Major\-Nummer verwendet: 0x03 für die \fBHDIO_*\fP\-Ioctls, 0x06 für die \fBLP*\fP\-Ioctls. Und manchmal wurden ein oder mehrere ASCII\-Buchstaben verwandt. Beispielsweise hat \fBTCGETS\fP den Wert 0x00005401, mit 0x54 = »T« zur Angabe des Terminal\-Treibers und \fBCYGETTIMEOUT\fP hat den Wert 0x00435906, mit 0x43 0x59 = »C« »Y« zur Angabe des »cyclades«\-Treibers. .PP Später (0.98p5) wurden weitere Informationen in die Nummer eingebaut. Es gibt zwei Richtungs\-Bits (00: keine, 01: schreiben, 10: lesen, 11: lesen/schreiben), gefolgt von 14 Größen\-Bits (die die Größe des Arguments angeben), gefolgt von einem 8\-Bit\-Typ (die die Ioctls in Gruppen für einen gemeinsamen Zweck oder gemeinsamen Treiber sammeln) und einer 8\-Bit\-Seriennummer. .PP Die Makros, die diese Struktur beschreiben, befinden sich in \fI\fP und sind \fB_IO(type,nr)\fP und \fB{_IOR,_IOW,_IOWR}(type,nr,size)\fP. Sie verwenden \fIsizeof(size)\fP, so dass die Größe hier eine Fehlbenennung ist: dieses dritte Argument ist ein Datentyp. .PP Beachten Sie, dass die Größen\-Bits sehr unzuverlässig sind: in vielen Fällen stimmen sie nicht, entweder aufgrund fehlerhafter Makros, die \fIsizeof(sizeof(struct))\fP verwenden oder aufgrund historisch geerbter Werte. .PP Daher scheint es, dass die neue Struktur nur Nachteile ergab: sie hilft nicht beim Überprüfen, verursacht aber variierende Werte für die verschiedenen Architekturen. .SH "SIEHE AUCH" .\" .BR mt (4), \fBexecve\fP(2), \fBfcntl\fP(2), \fBioctl_console\fP(2), \fBioctl_fat\fP(2), \fBioctl_ficlonerange\fP(2), \fBioctl_fideduperange\fP(2), \fBioctl_fslabel\fP(2), \fBioctl_getfsmap\fP(2), \fBioctl_iflags\fP(2), \fBioctl_ns\fP(2), \fBioctl_tty\fP(2), \fBioctl_userfaultfd\fP(2), \fBopen\fP(2), \fBsd\fP(4), \fBtty\fP(4) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können, sowie die aktuelle Version dieser Seite finden sich unter \%https://www.kernel.org/doc/man\-pages/. .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze , Michael Piefel , Patrick Rother , Chris Leick , Mario Blättermann , Dr. Tobias Quathamer und Helge Kreutzmann 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 .