getch
Petr Prazak
prazak na grisoft.cz
Středa Prosinec 27 10:33:53 CET 2000
Dobry den,
23.12.2000, Martin Žižka napsal k `getch':
> Potreboval bych ve skriptu pockat a vyhodnotit stisknutou klavesu. Problem
> je v tom, ze jsem neprisel na to, jak to provest. V BASHi 2.neco umi READ
> cist jenom jeden znak, tak je to mozne s urcitymi obtizemi take resit,
> jenomze ja bych to potreboval, aby to behalo i pod starsim BASHem. Zkousel
> jsem najit i nejakou C funkci, ktera by tohle resila, ze bych si napsal
> nejaky externi programek, ale getchar() nacte cely radek az do stisku Enter
> a vrati prvni znak = nepouzitelne a jedina dalsi funkce, kterou jsem nasel
> je getch z knihovny ncurses, jenomze to aby fungovalo se musi
> nainicializovat (initscr) a soucasti te inicializace je vymaz obrazovky =
> nepouzitelne, v dobe cekani na klavesu musi byt na obrazovce informace...
> Jak tohle resit?
Pred ctenim klaves musite prepnout vstupni rezim terminalu do primeho (raw)
modu, jinak dojde k vyse popsanemu bufferovani (cooked mode). V prikazovem
radku to jde pomoci prikazu stty(1), urcite na to existuje i knihovni funkce.
Doporucuji si precist nejakou literaturu. Pomerne dobre toto bylo popsano v
knize Brodsky, Skocovsky: Operacni system Unix a jazyk C (jestli se nepletu,
pisu to z hlavy), ktera ale vysla uz davno. Zkuste ji najit v nejake knihovne.
--
S pozdravem,
Petr Prazak
-------------------------------
developer @ GRISOFT(c) SOFTWARE
mailto:prazak na grisoft.cz
$ whois PP2717
ICQ# 10467674
-------------------------------
Další informace o konferenci Linux