manpagez: man pages & more
man flockfile(3)
Home | html | info | man
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

Mac OS X 10.8 - Generated Mon Aug 27 18:15:20 CDT 2012
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.