On 02/21/13 09:16, Paolo Bonzini wrote: > I think usually errno is undefined for return values other than -1
That's true for system calls, but full_read is different in that it sets errno whenever it returns a value other than the requested size. That way, the caller can distinguish a short read due to EOF from a short read due to I/O error. So Andy's code should be OK.