IOCTL(2)

BEZEICHNUNG
ioctl - steuere Gerät

ÜBERSICHT
#include <sys/ioctl.h>

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

[Das "dritte" Argument ist traditionsgemäß char *argp, und wird in diesem Dokument so bezeichnet.]

BESCHREIBUNG
Die Funktion ioctl manipuliert die zugrundeliegenden Device-Parameter einer Spezialdatei. 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. In einer ioctl-request ist enthalten, ob das Argument ein in- oder out-Parameter ist, und die Größe des Argumentes argp in Byte. Makros und Definitionen, die in der Spezifikation eines ioctl-request benutzt werden, sind zu finden in <sys/ioctl.h>.

RÜCKGABEWERT
üblicherweise wird bei Erfolg Null zurückgegeben. Einige ioctl-Aufrufe benutzen den Rückgabewert als einen Ausgabeparameter und geben bei Erfolg einen nichtnegativen Wert. Im Fehlerfall wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EBADF
    d ist kein gültiger Deskriptor.

ENOTTY
    d ist nicht mit einer zeichenorientierten Spezialdatei verbunden.

ENOTTY
    Die angegebene Anforderung passt nicht zu der Art der Änderung, auf die sich der Deskriptor d bezieht.

EINVAL
    Request oder argp ist nicht gültig.

KONFORM ZU
Kein einzelner Standard. Argumente, Rückgabewerte und Semantik von ioctl(2) variieren je nach dem entsprechenden Gerätetreiber (der Aufruf wird als ein Allheilmittel für alle Operationen benutzt, die nicht sauber in das Unix-Stream-E/A-Modell passen). Siehe ioctl_list(2) für eine Liste von vielen der bekannten ioctl-Aufrufe. Die Funktion ioctl erschien in Version 7 von AT&T UNIX.

SIEHE AUCH
execve(2), fcntl(2), mt(4), sd(4), tty(4).