#include <u.h> | |
#include <libc.h> | |
#include <fcall.h> | |
#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; | |
} |