/*
 * Write "n" bytes to a descriptor. Use in place of write() when fd is a
 * stream socket. 
 */

/* Stolen from Stevens' book */

#include <unistd.h>

int
writen (fd, ptr, nbytes)
     register int fd;
     register char *ptr;
     register int nbytes;
{
  int nleft, nwritten;

  nleft = nbytes;
  while (nleft > 0)
    {
      nwritten = write (fd, ptr, nleft);
      if (nwritten <= 0)
	return (nwritten);	/* error */

      nleft -= nwritten;
      ptr += nwritten;
    }
  return (nbytes - nleft);
}
