__fsetlocking(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

__fsetlocking(3c)

__fbufsize(3C)           Standard C Library Functions           __fbufsize(3C)

NAME
       __fbufsize,  __flbf,  __fpending,  __fpurge,  __freadable,  __freading,
       __fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces to stdio
       FILE structure

SYNOPSIS
       #include <stdio.h>
       #include <stdio_ext.h>

       size_t __fbufsiz(FILE *stream);


       int __flbf(FILE *stream);


       size_t __fpending(FILE *stream);


       void __fpurge(FILE *stream);


       int __freadable(FILE *stream);


       int __freading(FILE *stream);


       int __fsetlocking(FILE *stream, int type);


       int __fwritable(FILE *stream);


       int __fwriting(FILE *stream);


       void _flushlbf(void);

DESCRIPTION
       These functions provide portable access to the members of the stdio(3C)
       FILE structure.


       The __fbufsize() function returns in bytes the size of the buffer  cur‐
       rently in use by the given stream.


       The __flbf() function returns non-zero if the stream is line-buffered.


       The  __fpending  function returns in bytes the amount of output pending
       on a stream.


       The __fpurge() function  discards  any  pending  buffered  I/O  on  the
       stream.


       The  __freadable()  function returns non-zero if it is possible to read
       from a stream.


       The __freading() function returns non-zero if the file  is  open  read‐
       only,  or if the last operation on the stream was a read operation such
       as fread(3C) or fgetc(3C). Otherwise it returns 0.


       The __fsetlocking() function allows the type of  locking  performed  by
       stdio on a given stream to be controlled by the programmer.


       If type is FSETLOCKING_INTERNAL, stdio performs implicit locking around
       every  operation on the given stream. This is the default system behav‐
       ior on that stream.


       If type is FSETLOCKING_BYCALLER, stdio assumes that the caller  is  re‐
       sponsible  for  maintaining  the integrity of the stream in the face of
       access by multiple threads. If there is only one thread  accessing  the
       stream,  nothing  further needs to be done. If multiple threads are ac‐
       cessing the stream, then the caller can use the  flockfile(),  funlock‐
       file(),  and  ftrylockfile()  functions  described on the flockfile(3C)
       manual page to provide the appropriate locking. In both  this  and  the
       case  where  type  is FSETLOCKING_INTERNAL, __fsetlocking() returns the
       previous state of the stream.


       If type is FSETLOCKING_QUERY, __fsetlocking() returns the current state
       of the stream without changing it.


       The __fwritable() function returns non-zero if it is possible to  write
       on a stream.


       The  __fwriting()  function returns non-zero if the file is open write-
       only or append-only, or if the last operation on the stream was a write
       operation such as fwrite(3C) or fputc(3C). Otherwise it returns 0.


       The _flushlbf() function flushes all line-buffered files.  It  is  used
       when reading from a line-buffered file.

USAGE
       Although the contents of the stdio FILE structure have always been pri‐
       vate  to the stdio implementation, some applications have needed to ob‐
       tain information about a stdio stream that was not accessible through a
       supported interface. These  applications  have  resorted  to  accessing
       fields  of  the  FILE  structure directly, rendering them possibly non-
       portable to new implementations of stdio, or  more  likely,  preventing
       enhancements to stdio that would cause those applications to break.


       In  the 64-bit environment, the FILE structure is opaque. The functions
       described here are provided as a means  of  obtaining  the  information
       that up to now has been retrieved directly from the FILE structure. Be‐
       cause  they are based on the needs of existing applications (such as mh
       and emacs), they may be extended as other programs are ported. Although
       they may still be non-portable to other operating systems, they will be
       compatible from each Solaris release to the next. Interfaces  that  are
       more portable are under development.

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

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ MT-LevelT{ __fsetlocking() is Unsafe;  all  others  are
       MT-Safe T} _ Interface StabilityCommitted


SEE ALSO
       fgetc(3C),  flockfile(3C), fputc(3C), fread(3C), fwrite(3C), stdio(3C),
       attributes(7)

Oracle Solaris 11.4               5 Feb 1998                    __fbufsize(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3