Ubuntu Manpages

ÜBERSICHT

#include <sys/ioctl.h>

int ioctl(int d, int request, ...);

Die Funktion ioctl() manipuliert die zugrundeliegenden Geräteparameter von Spezialdateien. Im Besonderen können viele Betriebscharakteristika von zeichenorientierten Spezialdateien (z. B. Terminals) durch ioctl-Aufrufe gesteuert werden. Das Argument d muss ein geöffneter Dateideskriptor sein.

Das zweite Argument ist ein geräteabhängiger Aufrufkode. Das dritte Argument ist ein typloser Zeiger auf Speicher. Er ist traditionell char *argp (aus einer Zeit bevor void * gültiges C war) und wird für diese Diskussion so genannt.

In einem ioctl()-Aufruf ist kodiert, ob das Argument ein in- oder out-Parameter ist sowie die Größe des Argumentes argp in Byte. Makros und Definitionen, die in der Spezifikation eines ioctl()-Aufrufs benutzt werden, befinden sich in der Datei <sys/ioctl.h>.

Üblicherweise wird im Erfolgsfall Null zurückgegeben. Ein paar ioctl()-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 errno entsprechend gesetzt.

d ist kein gültiger Deskriptor.
argp referenziert einen Speicherbereich, auf den nicht zugegriffen werden kann.
Aufruf oder argp ist nicht gültig.
d ist nicht mit einem zeichenorientierten Spezialgerät verbunden.
Der angegebene Aufruf passt nicht zur Art des Objekts, auf die sich der Deskriptor d bezieht.

Kein einzelner Standard. Argumente, Rückgabewerte und Semantik von ioctl(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). Lesen Sie ioctl_list(2), um eine Liste von vielen der bekannten ioctl-Aufrufe zu erhalten. Die Funktion ioctl erschien in Version 7 von AT&T UNIX.

Um diesen Aufruf zu benutzen, wird ein offener Dateideskriptor benötigt. Der Aufruf von open(2) hat oft unerwünschte Nebeneffekte, die unter Linux durch Angabe des Schalters O_NONBLOCK vermieden werden können.

execve(2), fcntl(2), ioctl_list(2), open(2), sd(4), tty(4)

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 Patrick Rother <krd@gulu.net>, Martin Schulze <joey@infodrom.org>, Michael Piefel <piefel@debian.org> und Chris Leick <c.leick@vollbio.de> 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>.