#include <errno.h>
#include <unistd.h>
ssize_t writen (int fd, const void *buf, size_t num)
{
ssize_t res;
size_t n;
const char *ptr;
n = num;
ptr = buf;
while (n > 0) {
if ((res = write(fd, ptr, n)) <= 0) {
if (errno == EINTR) /*写入过程中发生了系统中断*/
res = 0;
else
return (-1); /*写入错误*/
}
ptr += res; /*一次写入不到所希望的字节数,调整指针继续写*/
n -= res; /*n为剩下还没写的字节数*/
}
return (num);
}
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |