FLOCKFILE(3) | Library Functions Manual | FLOCKFILE(3) |
flockfile
,
ftrylockfile
, funlockfile
— stdio locking functions
Standard C Library (libc, -lc)
#include
<stdio.h>
void
flockfile
(FILE
*file);
int
ftrylockfile
(FILE
*file);
void
funlockfile
(FILE
*file);
These functions provide explicit application-level locking of stdio FILE objects. They can be used to avoid output from multiple threads being interspersed, input being dispersed among multiple readers, and to avoid the overhead of locking the object for each operation.
The
flockfile
()
function acquires an exclusive lock on the specified object. If another
thread has already locked the object, flockfile
()
will block until the lock is released.
The
ftrylockfile
()
function is a non-blocking version of flockfile
();
if the lock cannot be acquired immediately,
ftrylockfile
() returns non-zero instead of
blocking.
The
funlockfile
()
function releases the lock on an object acquired by an earlier call to
flockfile
() or
ftrylockfile
().
These functions behave as if there is a lock
count associated with each object. Each time
flockfile
()
is called on the object, the count is incremented, and each time
funlockfile
() is called on the object, the count is
decremented. The lock is only actually released when the count reaches
zero.
The flockfile
() and
funlockfile
() functions return no value.
The ftrylockfile
() function returns zero
if the object was successfully locked, non-zero otherwise.
The flockfile
(),
ftrylockfile
(), and
funlockfile
() functions conform to
IEEE Std 1003.1-2001 (“POSIX.1”).
January 10, 2003 | macOS 14.6 |