+ Therefore the stream can contain NUL bytes, and the length
+ (including the newline) is returned in linebuffer->length.
+ Return NULL when stream is empty. Return NULL and set errno upon
+ error; callers can distinguish this case from the empty case by
+ invoking ferror (stream).
+ Otherwise, return LINEBUFFER. */