True, but no function will ever set errno to 0. The only way errno is 0 is if it was 0 before the call already and the function did not set it.
Also, the sendto() most decidedly does NOT require that you keep the buffer around until some indeterminable point in the future. After sendto() has returned, the data is safely in some buffer somewhere for transmission.