NAZWA¶
ioctl - sterowanie urządzeniem
SKŁADNIA¶
#include <sys/ioctl.h>
int ioctl(int d, int request, ...);
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
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
wejściowym czy
wyjściowym
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.
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)
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
Tłumaczenia Manuali i
może nie być aktualne. W razie
zauważenia różnic między powyższym opisem a
rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
zapoznanie się z oryginalną (angielską) wersją strony
podręcznika za pomocą polecenia:
- man --locale=C 2 ioctl
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.