📄 dirread.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -