Cygwin: access: Fix X_OK behaviour for backup operators and admins
[newlib-cygwin.git] / newlib / libc / sys / mmixware / access.c
blob8927b91d85790be574f291315f8b3b4a2a50037d
1 /* access for MMIXware.
3 Copyright (C) 2001, 2007 Hans-Peter Nilsson
5 Permission to use, copy, modify, and distribute this software is
6 freely granted, provided that the above copyright notice, this notice
7 and the following disclaimer are preserved with no changes.
9 THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
10 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
11 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12 PURPOSE. */
14 #include <fcntl.h>
15 #include <sys/stat.h>
16 #include <unistd.h>
17 #include "sys/syscall.h"
18 #include <errno.h>
20 int
21 access (const char *fn, int flags)
23 /* Ugh. We don't have stat (), so we can't copy the other
24 implementations. Opening a directory as a file usually works, so
25 let's try and open it and use the openability, regardless of what
26 kind of test or file it is. */
27 int fd;
29 /* We'll just assume that if we can open the file for reading, then it's
30 Z-able, no matter what Z was. */
31 fd = _open (fn, O_RDONLY);
32 if (fd >= 0)
34 /* Yes, this was readable. As in other simulator access functions,
35 we always return success in this case (though the others check
36 for directory access). */
37 return _close (fd);
40 errno = EACCES;
41 return -1;