flockfile man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

flockfile(3C)		 Standard C Library Functions		 flockfile(3C)

NAME
       flockfile, funlockfile, ftrylockfile - acquire and release stream lock

SYNOPSIS
       #include <stdio.h>

       void flockfile(FILE *stream);

       void funlockfile(FILE *stream);

       int ftrylockfile(FILE *stream);

DESCRIPTION
       The  flockfile() function acquires an internal lock of a stream stream.
       If the lock is already acquired by another thread, the  thread  calling
       flockfile()  is	suspended  until it can acquire the lock.  In the case
       that the stream lock is available, flockfile() not  only	 acquires  the
       lock,  but keeps track of the number of times it is being called by the
       current thread.	This implies that the stream lock can be acquired more
       than once by the same thread.

       The  funlockfile() function releases the lock being held by the current
       thread.	In the case of recursive locking, this function must be called
       the  same  number of times flockfile() was called.  After the number of
       funlockfile() calls is equal to the number of  flockfile()  calls,  the
       stream lock is available for other threads to acquire.

       The  ftrylockfile()  function  acquires	an  internal  lock of a stream
       stream, only if that object is available.  In essence ftrylockfile() is
       a non-blocking version of flockfile().

RETURN VALUES
       The  ftrylockfile() function returns 0 on success and non-zero to indi‐
       cate a lock cannot be acquired.

EXAMPLES
       Example 1: A sample program of flockfile().

       The following example prints everything out  together,  blocking	 other
       threads	that  might  want  to  write to the same file between calls to
       fprintf(3C):

       FILE iop;
       flockfile(iop);
       fprintf(iop, "hello ");
       fprintf(iop, "world);
       fputc(iop, 'a');
       funlockfile(iop);

       An unlocked interface is available in case  performance	is  an	issue.
       For example:

       flockfile(iop);
       while (!feof(iop)) {
	       *c++ = getc_unlocked(iop);
       }
       funlockfile(iop);

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Standard			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │MT-Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       intro(3),   __fsetlocking(3C),	ferror(3C),   fprintf(3C),   getc(3C),
       putc(3C), stdio(3C), ungetc(3C), attributes(5), standards(5)

NOTES
       The interfaces on this page  are as specified in IEEE Std  1003.1:2001.
       See standards(5).

SunOS 5.10			  10 Sep 2003			 flockfile(3C)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net