x SuSE Linux 13.1-RELEASE x
x SuSE Linux 13.1-RELEASEx
FLOPEN(3bsd) LOCAL FLOPEN(3bsd)
NAME
flopen -- reliably open and lock a file
LIBRARY
library "libbsd"
SYNOPSIS
#include <sys/fcntl.h>
#include <libutil.h>
(See libbsd(7) for include usage.)
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 of
LOCK_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, mail-
boxes 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 in-
cludes 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
Smorgrav <des@FreeBSD.org>.
BSD June 6, 2009 BSD
Want to link to this manual page? Use this URL:
<http://star2.abcm.com/cgi-bin/bsdi-man?query=flopen&sektion=3bsd&manpath=>