Sunday, April 3, 2011

How to detect that arrow key is pressed using C under Linux or Solaris?

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.

From stackoverflow
  • 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.

  • 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

    ypnos : This answer is spot-on. Especially if you want it portable, don't reinvent the wheel, just use a library and spare the headache.
  • I believe your program should switch into non-canonical mode to be able to read special characters

0 comments:

Post a Comment