SYNOPSIS

#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);

DESCRIPTION

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.

RETURN VALUE

This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.

ERRORS

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.

RELATED TO rfio_lockf64…

AUTHOR

LCG Grid Deployment Team