/*
 * fwrite.c
 */

#include <errno.h>
#include <unistd.h>
#include <stdio.h>

size_t _fwrite(const void *buf, size_t count, FILE *f)
{
  size_t bytes = 0;
  ssize_t rv;
  const char *p = buf;

  while ( count ) {
    rv = write(fileno(f), p, count);
    if ( rv == -1 ) {
      if ( errno == EINTR ) {
	errno = 0;
	continue;
      } else
	break;
    } else if ( rv == 0 ) {
      break;
    }

    p += rv;
    bytes += rv;
    count -= rv;
  }

  return bytes;
}
