[SOLVED] Differences between ncurses library and termios struct w.r.t Keyboard reading
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
"curses" is relatively high-level; "termio" is extremely low-level.
If you're talking about one low-level key input in one specific part of your program, and termio gives you what you want - then go for it.
If you want generalized, cross-platform, "text mode screen handling" capabilities, then ncurses is generally an excellent choice.
If you just want to read the raw, binary input of a specific key or key combination and you can get away with standard "printf" and "scanf" type input for the rest of your program, then "termio" might be the better choice.
I'm sure others have different opinions, but here's my take. If you want much of what ncurses offers (character-oriented windows, subwindows, menus, and the like), use ncurses. Otherwise, stick with struct termios, so you don't add needless complexity to your program's functionality.
A note: termios(2) won't read anything, read(2) will. Decoding/interpreting escape sequences is no way trivial; for example midnight commander does some interesting dark magic so that Shift+F5 would work as F15 (instead of F17 or whatnot.)