Check existence/accessibility of a file/directory
Under Unix:
#include <sys/types.h>
#include <unistd.h>
#include "lfc_api.h"
Under Windows/NT:
#include <sys/types.h>
#define R_OK 4
#define W_OK 2
#define X_OK 1
#define F_OK 0
#include "lfc_api.h"
int lfc_access (const char *path, int amode);
lfc_access checks in the name server database the existence or the accessibility of the file/directory path according to the bit pattern in amode using the real user ID.
path
specifies the logical pathname relative to the current LFC directory or the full LFC pathname.
amode
the bit pattern is built by an OR of the constants defined in <unistd.h> under Unix or to be explicitly defined under Windows/NT:
R_OK
test for read permission
W_OK
test for write permission
X_OK
test for search/execute permission
F_OK
test for existence of the directory/file.
This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.
ENOENT
The named file/directory does not exist or is a dangling symbolic link.
EACCES
Search permission is denied on a component of the path prefix or specified access to the file itself is denied.
EFAULT
path is a NULL pointer.
ENOTDIR
A component of path prefix is not a directory.
EINVAL
amode is invalid.
ENAMETOOLONG
The length of path exceeds CA_MAXPATHLEN or the length of a path component exceeds CA_MAXNAMELEN.
SENOSHOST
Host unknown.
SENOSSERV
Service unknown.
SECOMERR
Communication error.
ENSNACT
Name server is not running or is being shutdown.
LCG Grid Deployment Team