writen and readn
时间:2010-06-20 来源:crowsy001
#include <unistd.h>
ssize_t writen(int fd, const void *vptr, size_t n)
{
const char *ptr = vptr;
size_t nleft = n;
ssize_t nwriten;
while (nleft > 0) {
if ( (nwriten = write(fd, ptr, nleft)) <= 0)
return (nwriten);
nleft -= nwriten;
ptr += nwriten;
}
return(n);
}
ssize_t readn(int fd, const void *vptr, size_t n)
{
const char *ptr = vptr;
size_t nleft = n;
ssize_t nread;
while (nleft > 0) {
if ( (nread = read(fd, ptr, nleft)) <= 0)
return (nread);
nleft -= nread;
ptr += nread;
}
return(n - nleft);
}
相关阅读 更多 +