/*
 * fread.c
 */

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

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

  while ( count ) {
    rv = read(fileno(f), p, count);
    if ( rv == -1 ) {
      if ( errno == EINTR )
	continue;
      else
	return bytes ? bytes : -1;
    } else if ( rv == 0 ) {
      break;
    }

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

  return bytes;
}

    
      
