There might be a problem with getting your code and the player to work with the serial port at the same time. I'm not sure if the player will prevent reads. I'm pretty sure there's an option you can give the player software to get it to stop dealing with the serial port, but I forget what it is right now. Maybe it's in the developer section of riocar.org?

And what do you mean with your ``polling loop'' question? You mean that your read is blocking for input (that is, not progressing any further unless the read() has something to return)? You might want to look at the select() function call. You can also apply timeouts to certain things; maybe an ioctl()? I think one of those documents talks about it at least a little.
_________________________
Bitt Faulk