Attempts to read len bytes of out-of-band data from the stream,
and returns it as a string. Less than len bytes can be returned
if:
the stream has been closed from the other end, or
nonblocking mode is used, or
not_all is set, or
not_all isn't set and an error occurred (see below).
If not_all is nonzero, read_oob() only returns as many bytes
of out-of-band data as are currently available.
If something goes wrong and not_all is set, zero is returned.
If something goes wrong and not_all is zero or left out, then
either zero or a string shorter than len is returned. If the
problem persists then a later call to read_oob() fails and
returns zero, however.
If everything went fine, a call to errno() directly afterwards
returns zero. That includes an end due to remote close.
If no arguments are given, read_oob() reads to the end of the
stream.