📄 readv.c
字号:
#include <u.h>#include <libc.h>staticlongioreadv(int fd, IOchunk *io, int nio, vlong offset){ int i; long m, n, tot; char *buf, *p; tot = 0; for(i=0; i<nio; i++) tot += io[i].len; buf = malloc(tot); if(buf == nil) return -1; tot = pread(fd, buf, tot, offset); p = buf; n = tot; for(i=0; i<nio; i++){ if(n <= 0) break; m = io->len; if(m > n) m = n; memmove(io->addr, p, m); n -= m; p += m; io++; } free(buf); return tot;}longreadv(int fd, IOchunk *io, int nio){ return ioreadv(fd, io, nio, -1LL);}longpreadv(int fd, IOchunk *io, int nio, vlong off){ return ioreadv(fd, io, nio, off);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -