The docs 'precisely' says that it does. I'm sorry if you cannot trouble yourself to read the man pages to address your issues with the correct functionality of the select call.The misunderstanding is from the docs.
The select() does not report device errors.
Select will just "more precisely, to see if a read will not block".
This is a much slighter misunderstanding. The result of the 'select'
function tells you nothing about what a particular 'read' will or will not
do.