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/.