Нашёл красивый бенчмарк здесь http://insanecoding.blogspot.de/2011/11/how-to-read-in-file-in-c.html
Но как быть с неблокирующим чтением.
Единственное, что я вижу, так это напрямую использовать open(mydevice, RD_ONLY | O_NONBLOCK); Больше c++ way вариантов нет? Или правильный путь это вариации select/poll + блокирующее чтение?