putchar
Alexandr Malusek
malusek na hroch.ujf.cas.cz
Pondělí Květen 4 19:33:13 CEST 1998
Jan.Scheuer na snake.cz (Jan Scheuer) writes:
> Potrebuji zajistit ovladani programu zaslanim uzivatelskeho
> signalu, kde obsluha signalu nabije vstup programu a ten je pote precten.
> Problem :putchar nereaguje na nabiti vstupu okamzite ale az po stisku
> klavesy.
Funkce getchar() z libc pouzije systemove volani read() pro cteni
znaku z klavesnice. Jadro proces zablokuje s tim, ze ho vzbudi, az
nekdo neco napise na klavesnici. Pak si proces tento znak precte a
bude pokracovat dal.
Volanim ungetc() pouze modifikujete obsah datovych struktur knihovny
vstupu a vystupu, viz stdio(3). (To je zalezitost libc, nikoliv
jadra.) Proces dal ceka na to, az mu jadro zasle signal, ktery ho
odblokuje.
> Nevi nekdo nahodou jak to resit?
Domnivam se, ze Vami navrzeny postup neni pouzitelny, protoze pomoci
Vam dostupnych signalu nemuzete emulovat stisknuti klavesy (nejsem si
jist na 100%). Rekl bych, ze bude nutne pouzit koncepcne jine reseni.
--
A. Malusek (malusek na ujf.cas.cz)
UJF AV CR
Další informace o konferenci Linux