table of contents
other versions
- wheezy 0.4.2-1
- wheezy-backports 0.7.0-2~bpo70+2
- jessie 0.7.0-2
- testing 0.8.3-1
- unstable 0.8.3-1
FLOPEN(3) | Library Functions Manual | FLOPEN(3) |
NAME¶
flopen — reliably open and lock a fileLIBRARY¶
library “libbsd”SYNOPSIS¶
#include <sys/fcntl.h>#include <bsd/libutil.h> int
flopen(const char *path, int flags); int
flopen(const char *path, int flags, mode_t mode);
DESCRIPTION¶
The flopen() function opens or creates a file and acquires an exclusive lock on it. It is essentially equivalent with calling open() with the same parameters followed by flock() with an operation argument ofLOCK_EX
, except that flopen() will
attempt to detect and handle races that may occur between opening / creating
the file and locking it. Thus, it is well suited for opening lock files, PID
files, spool files, mailboxes and other kinds of files which are used for
synchronization between processes.
If flags includes O_NONBLOCK
and
the file is already locked, flopen() will fail and set
errno to EWOULDBLOCK
.
As with open(), the additional mode
argument is required if flags includes
O_CREAT
.
RETURN VALUES¶
If successful, flopen() returns a valid file descriptor. Otherwise, it returns -1, and sets errno as described in flock(2) and open(2).SEE ALSO¶
errno(2), flock(2), open(2)AUTHORS¶
The flopen function and this manual page were written by Dag-Erling Smørgrav ⟨des@FreeBSD.org⟩.June 6, 2009 | Debian |