writev.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 43 行
C
43 行
#include <u.h>#include <libc.h>staticlongiowritev(int fd, IOchunk *io, int nio, vlong offset){ int i; long tot; char *buf, *p; tot = 0; for(i=0; i<nio; i++) tot += io[i].len; buf = malloc(tot); if(buf == nil) return -1; p = buf; for(i=0; i<nio; i++){ memmove(p, io->addr, io->len); p += io->len; io++; } tot = pwrite(fd, buf, tot, offset); free(buf); return tot;}longwritev(int fd, IOchunk *io, int nio){ return iowritev(fd, io, nio, -1LL);}longpwritev(int fd, IOchunk *io, int nio, vlong off){ return iowritev(fd, io, nio, off);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?