dirread.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 41 行
C
41 行
#include <u.h>#include <libc.h>#include <auth.h>#include <fcall.h>#include <thread.h>#include <9p.h>voiddirread9p(Req *r, Dirgen *gen, void *aux){ int start; uchar *p, *ep; uint rv; Dir d; if(r->ifcall.offset == 0) start = 0; else start = r->fid->dirindex; p = (uchar*)r->ofcall.data; ep = p+r->ifcall.count; while(p < ep){ memset(&d, 0, sizeof d); if((*gen)(start, &d, aux) < 0) break; rv = convD2M(&d, p, ep-p); free(d.name); free(d.muid); free(d.uid); free(d.gid); if(rv <= BIT16SZ) break; p += rv; start++; } r->fid->dirindex = start; r->ofcall.count = p - (uchar*)r->ofcall.data;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?