1/* -*- c-basic-offset: 8; -*- */
2/* include writen */
3#include	"sock.h"
4
5ssize_t						/* Write "n" bytes to a descriptor. */
6writen(int fd, const void *vptr, size_t n)
7{
8	size_t		nleft;
9	ssize_t		nwritten;
10	const char	*ptr;
11
12	ptr = vptr;
13	nleft = n;
14	while (nleft > 0) {
15		if ( (nwritten = write(fd, ptr, nleft)) <= 0) {
16			if (errno == EINTR)
17				nwritten = 0;		/* and call write() again */
18			else
19				return(-1);			/* error */
20		}
21
22		nleft -= nwritten;
23		ptr   += nwritten;
24	}
25	return(n);
26}
27/* end writen */
28
29