Check existence/accessibility of a file replica
Under Unix:
#include <sys/types.h>
#include <unistd.h>
#include "dpns_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 "dpns_api.h"
int dpns_accessr (const char *sfn, int amode);
dpns_accessr checks in the name server database the existence or the accessibility of the file replica sfn according to the bit pattern in amode using the real user ID.
sfn
is either the Site URL or the Physical File Name for the replica.
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 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 does not exist.
EACCES
Search permission is denied on a component of the parent file prefix, the specified access to the file itself is denied or W_OK is requested but the replica status is not 'P' (cannot modify an existing file).
EFAULT
sfn is a NULL pointer.
EINVAL
amode is invalid.
ENAMETOOLONG
The length of sfn exceeds CA_MAXSFNLEN.
SENOSHOST
Host unknown.
SENOSSERV
Service unknown.
SECOMERR
Communication error.
ENSNACT
Name server is not running or is being shutdown.
LCG Grid Deployment Team