tags:

views:

697

answers:

3

What is the best way to detect in a C program that arrow key is pressed under Linux or Solaris?

As I know there is no standard C function that can do it. I don't want to use int86 function. I need to do it in a portable way.

Edit: I am asking about console applications.

A: 

If you wanted to do this without using something like SDL, you should look into the select() statement and how to use it to read from console input.

Suroot
+5  A: 

You should look at the curses/ncurses library which will give you advanced screen and keyboard handling for console applications.

There is a lot of documentation available for curses, which is an extensive library.

There is a write-up on this very question available here

Steve Weet
This answer is spot-on. Especially if you want it portable, don't reinvent the wheel, just use a library and spare the headache.
ypnos
A: 

I believe your program should switch into non-canonical mode to be able to read special characters

dmityugov