Provided by:
manpages-pl-dev_20051117-1_all 
NAZWA
ioctl - sterowanie urządzeniem
SKŁADNIA
#include <sys/ioctl.h>
int ioctl(int d, int request, ...);
OPIS
Funkcja ioctl manipuluje na podległych jej parametrach urządzeń, do
których dostęp odbywa się poprzez pliki specjalne. W szczególności, za
pomocą żądań ioctl można kontrolować wiele właściwości operacyjnych
specjalnych plików znakowych (np. terminali). Argument d musi być
otwartym deskryptorem pliku.
Drugi argument jest zależnym od urządzenia kodem polecenia. Trzeci
argument jest pozbawionym typu wskaźnikiem do obszaru pamięci,
tradycyjnie char *argp (pochodzi z okresu zanim void * stało się
poprawne w C) i tak będzie nazywany w niniejszej dyskusji.
Ioctl request zawiera w sobie zakodowaną informację czy argument jest
parametrem wejciowym czy wyjciowym oraz rozmiar argp tego argumentu w
bajtach. Makra i definicje, używane do przekazywania request do ioctl,
znajdują się w pliku <sys/ioctl.h>.
WARTOŚĆ ZWRACANA
Zazwyczaj, po pomyślnym zakończeniu zwracane jest zero. Niektóre
ioctl-e używają zwracanej wartości jako parametru wyjściowego i
zwracają wówczas pewną wartość nieujemną. Po błędzie zwracane jest -1
i odpowiednio ustawiane errno.
BŁĘDY
EBADF d nie jest prawidłowym deskryptorem.
EFAULT argp wskazuje na niedostępny obszar pamięci.
ENOTTY d nie jest związane z urządzeniem znakowym.
ENOTTY Podane żądanie nie ma zastosowania dla obiektu, na który
wskazuje deskryptor d.
EINVAL request lub argp są nieprawidłowe.
CONFORMING TO
Brak jednego standardu. Argumenty, zwracane wartości i semantyka
ioctl(2) różnią się w zależności od sterownika urządzenia, którego
dotyczą (wywołanie jest używane jako uniwersalne dla operacji, które
nie dają się ładnie dopasować do uniksowego modelu strumieni we/wy). W
ioctl_list(2) znajduje się lista wielu znanych wywołań ioctl. Funkcja
ioctl pojawiła się w wersji 7 AT&T UNIX.
ZOBACZ TAKŻE
execve(2), fcntl(2), ioctl_list(2), mt(4), sd(4), tty(4)