ioctl odpowiedzialny jest za kontrolę wejścia/wyjścia oraz używany jest do
manipulacji urządzeniami znakowymi poprzez deskryptory plików. Funkcja ioctl ma postać
ioctl(unsigned int fd, unsigned int żądanie, unsigned long argument).
Zwracaną wartością jest -1 jeżeli wystąpił błąd lub wartość >= 0
jeżeli powiodło się (tak jak w innych wywołaniach systemowych).
Jądro obsługuje dwa rodzaje plików: specjalne i normalne.
Specjalne pliki znajdują się głównie w /dev i /proc. Różnią się tym od zwykłych,
że są one interfejsem do sterownika, a nie zwykłym plikiem zawierającym tekst
lub dane binarne. Taka jest filozofia Unixa - możliwość użycia normalnych
operacji odczytu/zapisu na każdym pliku. Jednakże gdy musisz zrobić coś więcej
z plikiem specjalnym lub zwykłym możesz to zrobić przy pomocy ... oczywiście - ioctl.
Częściej będziesz potrzebował ioctl do operacji na plikach specjalnych
niż na zwykłych, ale warto pamiętać że używanie ioctl na zwykłych plikach jest możliwe.
<