I've tried that, but no I doesn't suits me either. I'll explain:
The problem with that is that if I press for example X and hold it I start reading a stream of x characters, but if, while still holding it, I press Z then the stream of x stop and a stream of z begins, so I don't know if the user is still pressing x.
I realized that I have no other choice than to be able to receive the press and release key events. I found googling that there's a way to put the keyboard in "RAW" mode using fnctl so that I could recive a code indicating the key and the event (press, release), although I couldn't make it work with the (very little) documentation I found.
I also realized that even if I managed to code it, I would end up with my own implementation of the same functionality that libraries like SDL already provide, and it would be kind of a waste of time. So I the end I sticked to SDL
Greetz!