Indeed, errno is not cleared by successful calls, so you can't check it for success.
After a short write your only legitimate course of action is to advance the pointer and write again.
After a short write your only legitimate course of action is to advance the pointer and write again.