ref: c7fc69bd6a965a4cb8eca7c9d4a069fb271c68e2
dir: /sys/src/libc/9sys/access.c/
#include <u.h> #include <libc.h> int access(char *name, int mode) { int fd; Dir *db; static char omode[] = { 0, OEXEC, OWRITE, ORDWR, OREAD, OEXEC, /* only approximate */ ORDWR, ORDWR /* only approximate */ }; if(mode == AEXIST){ db = dirstat(name); free(db); if(db != nil) return 0; return -1; } fd = open(name, omode[mode&7]); if(fd >= 0){ close(fd); return 0; } return -1; }