/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Udvidet tastetur koder (C)
Fra : Heine Laursen


Dato : 13-12-01 11:41

Hvordan bruger jeg udvidet tastetur koder (Hvor finder jeg en liste over
dem)

Jeg vil F.eks gerne have at man kan på et vilket som helst tidspungt
trykke ESC for at afbryde programmet.

Jeg har alt program kode erklæret i Funktioner, så det er vel bare en
while(1) lykke omkring de funktioner der er i main eller hvordan?

Det er C programmering jeg arbejder med,

Mvh
Heine Laursen

 
 
frank damgaard (13-12-2001)
Kommentar
Fra : frank damgaard


Dato : 13-12-01 16:31

Heine Laursen <gozar@pokerface.dk> wrote:

> Hvordan bruger jeg udvidet tastetur koder (Hvor finder jeg en liste over
> dem)

> Jeg vil F.eks gerne have at man kan på et vilket som helst tidspungt
> trykke ESC for at afbryde programmet.

Problemet er at du skal anvende "ikke-bufferet" mode til at læse med.
Der er ingen enkelt standard for udvidede tastaturkoder,
og det afhænger helt af hvilken terminal ($TERM) der er i brug.

Evt. (sakset fra et af mine programmer til fri afbenyttelse...):

#ifndef USE_WIN32
static struct termios saved_termios_data;
#endif

void tty_inputmode(int on) {
/* 0: no line buffering of input => no ICANON !! and no echo */
/* 1: restore from saved_termios_data */
#ifndef USE_WIN32
int fd=1;
if (on) {
tcsetattr ( fd, TCSAFLUSH, &saved_termios_data );
} else /* off */ {
static struct termios termios_data;
tcgetattr ( fd , &saved_termios_data );
termios_data= saved_termios_data;
termios_data.c_lflag &= ~(ECHO | ICANON);
tcsetattr ( fd, TCSAFLUSH, &termios_data );
}
#endif
}

getch() mv, skulle nu køre unbuffered hvis tty_inputmode(0)
Husk tty_inputmode(1) inden programmet afsluttes.
Fang evt. SIGHUP/SIGINT mv. ok kald derfra, så inputmode er ok ved
retur til shell.

Bedre er nok at bruge ncurses(3)....


--
Frank Damgaard |


Heine Laursen (14-12-2001)
Kommentar
Fra : Heine Laursen


Dato : 14-12-01 08:27

frank damgaard <frank.damgaard@spam.invalid> wrote in
news:goagff.bi0@mkb84.ftn:

Ups,

Forkert NG!

Mvh
Heine Laursen

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408885
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste