Back to index

courier  0.68.2
Functions
locklockf.c File Reference
#include <sys/types.h>
#include "liblock.h"

Go to the source code of this file.

Functions

int ll_lockfd (int fd, int ltype, LL_OFFSET_TYPE start, LL_OFFSET_TYPE len)

Function Documentation

int ll_lockfd ( int  fd,
int  ltype,
LL_OFFSET_TYPE  start,
LL_OFFSET_TYPE  len 
)

Definition at line 25 of file locklockf.c.

{
off_t  p;

       if (ltype & ll_whence_curpos)
              p=lseek(fd, start, SEEK_CUR);
       else if (ltype && ll_whence_end)
              p=lseek(fd, start, SEEK_END);
       else   p=lseek(fd, start, SEEK_SET);

       if (p < 0)    return (-1);

       if (lockf(fd, ltype & ll_unlock ? F_ULOCK:
              ltype & ll_wait ? F_LOCK:F_TLOCK, len))
       {
              lseek(fd, p, SEEK_SET);
              return (-1);
       }
       lseek(fd, SEEK_SET, p);
       return (0);
}

Here is the caller graph for this function: