mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-18 20:39:33 +08:00
2693c1db69
The implementation of the POSIX access() function is nothing machine specific like memcpy(), etc. Move it back to the system domain. This avoids problems due to the include search order of the Newlib/GCC build which picks up machine includes before system includes. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
34 lines
728 B
C
34 lines
728 B
C
/* This is file ACCESS.C */
|
|
/*
|
|
* Copyright (C) 1993 DJ Delorie
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution, modification, and use in source and binary forms is permitted
|
|
* provided that the above copyright notice and following paragraph are
|
|
* duplicated in all such forms.
|
|
*
|
|
* This file is distributed WITHOUT ANY WARRANTY; without even the implied
|
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*/
|
|
|
|
#include <fcntl.h>
|
|
#include <sys/stat.h>
|
|
#include <unistd.h>
|
|
|
|
int access(const char *fn, int flags)
|
|
{
|
|
struct stat s;
|
|
if (stat(fn, &s))
|
|
return -1;
|
|
if (s.st_mode & S_IFDIR)
|
|
return 0;
|
|
if (flags & W_OK)
|
|
{
|
|
if (s.st_mode & S_IWRITE)
|
|
return 0;
|
|
return -1;
|
|
}
|
|
return 0;
|
|
}
|
|
|