The bio(3) man page includes the following:
> Brdline returns a pointer to the start of the line or 0 on end-of-file or read error
And later in the DIAGNOSTICS section:
> All routines set errstr on error.
In plan9 proper I presume errstr is set via `read`/`pread`. In the case of plan9port the unix syscall obviously is not going to set errstr, but it will set errno so I think this is your answer -- if Brdline returns 0 then:
(a) go and check errno to see what went wrong, or
(b) go and call errstr() to see what went wrong
The latter is still possible in plan9port because its errstr() function also considers the unix errno state.
HTH,
-sqweek