/* ** Copyright 1998 - 1999 Double Precision, Inc. See COPYING for ** distribution information. */ #if HAVE_CONFIG_H #include "config.h" #endif #include #if HAVE_FCNTL_H #include #endif #if HAVE_SYS_FCNTL_H #include #endif #if HAVE_SYS_FILE_H #include #endif #include #include "liblock.h" int ll_lockfd(int fd, int ltype, LL_OFFSET_TYPE start, LL_OFFSET_TYPE len) { if (start || len || (ltype & ll_whence_curpos) || (ltype & ll_whence_end)) { errno=EINVAL; return (-1); } return (flock(fd, ltype & ll_unlock ? LOCK_UN: (ltype & ll_writelock ? LOCK_EX:LOCK_SH) | (ltype & ll_wait ? 0:LOCK_NB))); }