ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



FLOCKFILE(3)             BSD Library Functions Manual             FLOCKFILE(3)

NAME
     flockfile, ftrylockfile, funlockfile -- stdio locking functions

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <stdio.h>

     void
     flockfile(FILE *file);

     int
     ftrylockfile(FILE *file);

     void
     funlockfile(FILE *file);

DESCRIPTION
     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.

RETURN VALUES
     The flockfile() and funlockfile() functions return no value.

     The ftrylockfile() function returns zero if the object was successfully locked, non-zero otherwise.

SEE ALSO
     getc_unlocked(3), putc_unlocked(3)

STANDARDS
     The flockfile(), ftrylockfile(), and funlockfile() functions conform to IEEE Std 1003.1-2001
     (``POSIX.1'').

BSD                            January 10, 2003                            BSD

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.