Provide record locking on files
#include <sys/types.h>
#include "rfio_api.h"
int rfio_lockf (int sd, int op, long siz);
Under Linux, for large files:
#define _LARGEFILE64_SOURCE
#include <sys/types.h>
#include "rfio_api.h"
int rfio_lockf64 (int sd, int op, off64_t siz);
For large files, under other systems:
#include <sys/types.h>
#include "rfio_api.h"
int rfio_lockf64 (int sd, int op, off64_t siz);
rfio_lockf restricts access to regions of files to the calling process.
sd is the file descriptor returned by a previous rfio_open.
op specifies the action to be taken:
F_ULOCK
unlock a region.
F_LOCK
lock a region.
F_TLOCK
test and lock a region.
F_TEST
test a region for other locks.
siz gives the size of the region to be locked, starting at the current file offset.
rfio_lockf64 must be used for large files and uses an off64_t instead of a long to specify the size of the region to be locked.
This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.
EBADF
sd is not a valid descriptor.
EACCES
The file region is locked and F_TEST or F_TLOCK was specified.
EINVAL
incorrect value for op or siz.
SENOSHOST
Host unknown.
SENOSSERV
Service unknown.
SETIMEDOUT
Timed out.
SECONNDROP
Connection closed by remote end.
SECOMERR
Communication error.
LCG Grid Deployment Team