readv.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 31 行
C
31 行
#include <unistd.h>#include <string.h>#include <sys/uio.h>intreadv(int fd, struct iovec *v, int ent){ int x, i, n, len; char *t; char buf[10*1024]; for(len = i = 0; i < ent; i++) len += v[i].iov_len; if(len > sizeof(buf)) len = sizeof(buf); len = read(fd, buf, len); if(len <= 0) return len; for(n = i = 0; n < len && i < ent; i++){ x = len - n; if(x > v[i].iov_len) x = v[i].iov_len; memmove(v[i].iov_base, buf + n, x); n += x; } return len;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?