bwrite.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 44 行
C
44 行
#include <u.h>#include <libc.h>#include <bio.h>longBwrite(Biobufhdr *bp, void *ap, long count){ long c; uchar *p; int i, n, oc; char errbuf[ERRMAX]; p = ap; c = count; oc = bp->ocount; while(c > 0) { n = -oc; if(n > c) n = c; if(n == 0) { if(bp->state != Bwactive) return Beof; i = write(bp->fid, bp->bbuf, bp->bsize); if(i != bp->bsize) { errstr(errbuf, sizeof errbuf); if(strstr(errbuf, "interrupt") == nil) bp->state = Binactive; errstr(errbuf, sizeof errbuf); return Beof; } bp->offset += i; oc = -bp->bsize; continue; } memmove(bp->ebuf+oc, p, n); oc += n; c -= n; p += n; } bp->ocount = oc; return count-c;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?