title: Is std::iostream non-blocking?
body: <p>According to the boost reference for Boost.Iostreams (In section 3.6, at the very bottom):</p>
  
  <p><a href="http://www.boost.org/doc/libs/1_64_0/libs/iostreams/doc/index.html" rel="noreferrer">http://www.boost.org/doc/libs/1_64_0/libs/iostreams/doc/index.html</a></p>
  
  <blockquote>
    <p>Although the Boost.Iostreams Filter and Device concepts can
    accommodate non-blocking i/o, the C++ standard library stream and
    stream buffer interfaces cannot, since they lack a means to
    distinguish between temporary and permanent failures to satisfy a read
    or write request</p>
  </blockquote>
  
  <p>However, the function <code>std::istream::readsome</code> appears to be non-blocking, in that the available characters will be immediately returned, without a blocking (except for a RAM copy) wait. My understanding is that:</p>
  
  <p><code>std::istream::read</code> will block until <code>eof</code> or number of characters read.</p>
  
  <p><code>std::istream::readsome</code> will return immediately with characters copied from the internal buffer.</p>