Interaktivní osnova
Tématické skupiny v rámci předmětu PB173 Tematicky zaměřený vývoj aplikací v jazyce C/C++
Téma 2: Rozhraní s uživatelem
Teoretická část
-
Syscally
-
Znaková zařízení
-
Kontrola a použití ukazatelů z uživatelského prostoru
-
Datové typy
-
32-bit/64-bit kompatibilita
-
Praktický úkol pro cvičení
-
Implementovat ovladač znakového zařízení
-
Vytvořit znakové zařízení
-
Implementovat
open
,read
/write
,release
-
Read
bude vracet retězecAhoj
-
Výpis bufferu
write
do systémového logu
-
-
Domácí úkol
-
Doimplentujte
ioctl
se dvěma příkazy (dvě různé hodnotycmd
):-
Nastavení počtu vracených znaků z
read
(read bude vracet “A”, “Ah”, “Aho”, anebo “Ahoj”) -
Zjištění aktuálního počtu
-
-
long unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
-
pojmenování “unlocked” čistě z historických důvodů, odpovídá
ioctl(fd, cmd, arg)
(man ioctl
)-
Tj. předáme-li v userspace
int *
jako 3. parametr, musíme v jádřearg
přetypovat naint *
-
-
cmd
… hodnoty 100 a 200 (anebo správněji můžete definovat a používat čísla definovaná pomocí_IOR
a_IOW
)-
detaily v Documentation/ioctl/ioctl-number.txt
-
-
arg
… v prvním případě nastavovaný počet znaků, v druhém ukazatel naint
(pozor na ukazatel z userspace)
-
-
Lze otestovat skriptem z GITu 02/ioctl_test.pl