#include "ourhdr.h" ssize_t /* Write "n" bytes to a descriptor. */ writen(int fd, const void *vptr, size_t n) { size_t nleft, nwritten; const char *ptr; ptr = vptr; /* can't do pointer arithmetic on void* */ nleft = n; while (nleft > 0) { if ( (nwritten = write(fd, ptr, nleft)) <= 0) return(nwritten); /* error */ nleft -= nwritten; ptr += nwritten; } return(n); }