📄 xwritev.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 + -