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