#include #include #include #include <9pclient.h> #include "fsimpl.h" int fsaccess(CFsys *fsys, char *name, int mode) { CFid *fid; Dir *db; static char omode[] = { 0, OEXEC, OWRITE, ORDWR, OREAD, OEXEC, /* only approximate */ ORDWR, ORDWR /* only approximate */ }; if(mode == AEXIST){ db = fsdirstat(fsys, name); free(db); if(db != nil) return 0; return -1; } fid = fsopen(fsys, name, omode[mode&7]); if(fid != nil){ fsclose(fid); return 0; } return -1; }