ref: 6e67ce955b1f432f2d1dc85909553e65a511b8b8
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; }