Manpages

NAZWA

ioctl - sterowanie urządzeniem

SKŁADNIA

#include <sys/ioctl.h>

int ioctl(int fd, unsigned long request, ...);

OPIS

The ioctl() system call manipulates the underlying device parameters of special files. In particular, many operating characteristics of character special files (e.g., terminals) may be controlled with ioctl() requests. The argument fd must be an open file descriptor.

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.

An ioctl() request has encoded in it whether the argument is an in parameter or out parameter, and the size of the argument argp in bytes. Macros and defines used in specifying an ioctl() request are located in the file <sys/ioctl.h>.

WARTOŚĆ ZWRACANA

Usually, on success zero is returned. A few ioctl() requests use the return value as an output parameter and return a nonnegative value on success. On error, -1 is returned, and errno is set appropriately.

BŁĘDY

EBADF

fd nie jest prawidłowym deskryptorem.

EFAULT

argp wskazuje na niedostępny obszar pamięci.

EINVAL

request lub argp są nieprawidłowe.

ENOTTY

fd nie jest związane z urządzeniem znakowym.

ENOTTY

Podane żądanie nie ma zastosowania dla obiektu, na który wskazuje deskryptor fd.

ZGODNE Z

Brak jednego standardu. Argumenty, zwracane wartości i semantyka ioctl() 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.

UWAGI

In order to use this call, one needs an open file descriptor. Often the open(2) call has unwanted side effects, that can be avoided under Linux by giving it the O_NONBLOCK flag.

ZOBACZ TAKŻE

execve(2), fcntl(2), ioctl_console(2), ioctl_fat(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), ioctl_getfsmap(2), ioctl_iflags(2), ioctl_list(2), ioctl_ns(2), ioctl_tty(2), ioctl_userfaultfd(2), open(2), sd(4), tty(4)

O STRONIE

Angielska wersja tej strony pochodzi z wydania 5.05 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys [AT] dione.pl> i Andrzej Krzysztofowicz <ankry [AT] green.pl>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres <manpages-pl-list [AT] lists.net>.