⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xwritev.c

📁 早期freebsd实现
💻 C
字号:
/*  $Revision: 1.3 $***/#include <stdio.h>#include <errno.h>#include <sys/types.h>#include <sys/uio.h>#include "clibrary.h"/***  Do a writev, return -1 on error; 0 if okay.  Handling the return value**  of writev is a pain.  It should return the number of iov's it fully**  wrote out, and update the fields in all of them to contain the new**  startpoints.*/intxwritev(fd, vp, vpcount)    int			fd;    struct iovec	*vp;    register int	vpcount;{    register int	i;    register long	left;    /* Get the total bytecount. */    for (left = 0, i = vpcount; --i >= 0; )	left += vp[i].iov_len;    while (vpcount) {	if ((i = writev(fd, vp, (SIZE_T)vpcount)) < 0)	    return -1;	if ((left -= i) <= 0)	    break;	for (; i >= vp->iov_len; vp++, vpcount--)	    i -= vp->iov_len;	vp->iov_base += i;	vp->iov_len -= i;    }    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -