Feed buffer to write function
#include <buffer.h>
int buffer_flush(buffer* b);
buffer_flush feeds a string d[0], d[1], ..., d[dlen-1] to the write operation by calling
op(fd,d,dlen)
If op successfully handles one or more bytes at the beginning of the string, it must return the number of bytes handled; if this number is smaller than dlen, buffer_flush will call op again with the rest of the string. If op does not handle any bytes, and does not encounter an error, it must return 0, or return -1 with errno set to EINTR; in either case, buffer_flush will immediately call op again. If op encounters an error, it must return -1 with errno set to something other than EINTR; buffer_flush will pass the error to the caller.
On success, buffer_flush returns 0. On error, buffer_flush returns -1, setting errno appropriately.