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

개요

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

fdopen(3c)

fdopen(3C)               Standard C Library Functions               fdopen(3C)

NAME
       fdopen - associate a stream with a file descriptor

SYNOPSIS
       #include <stdio.h>

       FILE *fdopen(int fildes, const char *mode);

DESCRIPTION
       The  fdopen()  function  associates  a  stream  with  a file descriptor
       fildes.


       The mode argument points to a string beginning with one of the  follow‐
       ing sequences:

       tab(); lw(1.9i) lw(3.6i) r or rbOpen a file for reading.  w or wbOpen a
       file  for writing.  a or abOpen a file for writing at end of file.  r+,
       rb+ or r+bT{ Open a file for update (reading and writing).  T} w+,  wb+
       or  w+bT{  Open a file for update (reading and writing).  T} a+, ab+ or
       a+bT{ Open a file for update (reading and writing) at end of file.  T}



       Additional mode characters may be specified after those prefixes to set
       various flags. The meaning of these strings is exactly as specified for
       the fopen(3C) function, except that:

           o      modes beginning with w do not cause truncation of the file


           o      modes beginning with a cause a one-time fseek(3C) to set the
                  file-position indicator to the end of the file when fdopen()
                  is called, but do not force subsequent writes to the end un‐
                  less the underlying file  descriptor  was  opened  with  the
                  O_APPEND flag


           o      modes beginning with w or a cannot create a new file


           o      the use of x has no effect


           o      The  FD_CLOEXEC  flag  of fildes shall be unchanged if e was
                  not present, and shall be set if e is present.


           o      The FD_CLOFORK flag of fildes shall be unchanged  if  f  was
                  not present, and shall be set if f is present.



       The  mode  of the stream must be allowed by the file access mode of the
       open file. The file position indicator associated with the  new  stream
       is set to the position indicated by the file offset associated with the
       file descriptor, unless the mode string started with an a.


       The  fdopen()  function preserves the offset maximum previously set for
       the open file description corresponding to fildes.


       The error and end-of-file indicators for the stream  are  cleared.  The
       fdopen()  function  may cause the st_atime field of the underlying file
       to be marked for update.


       If fildes refers to a shared memory object, the result of the  fdopen()
       function is unspecified.

RETURN VALUES
       Upon  successful  completion,  fdopen()  returns a pointer to a stream.
       Otherwise, a null pointer is returned and errno is set to indicate  the
       error.


       The  fdopen()  function may fail and not set errno if there are no free
       stdio streams.

ERRORS
       The fdopen() function may fail if:

       EBADF     The fildes argument is not a valid file descriptor.


       EINVAL    The mode argument is not a valid mode.


       EMFILE    {FOPEN_MAX}  streams  are  currently  open  in  the   calling
                 process.

                 {STREAM_MAX}  streams  are  currently  open  in  the  calling
                 process.


       ENOMEM    There is insufficient space to allocate a buffer.


USAGE
       A process is allowed to have at least {FOPEN_MAX} stdio streams open at
       a time.


       File descriptors are obtained from calls like open(2), dup(2), creat(2)
       or pipe(2), which open files but do not  return  streams.  Streams  are
       necessary input for almost all of the standard I/O library functions.


       When  the  stdio  stream  is no longer needed, it should be closed with
       fclose(3C), which will close both the stdio stream and  the  associated
       file  descriptor. Once a file descriptor has been associated to a stdio
       stream, it must not be  closed  via  other  methods,  such  as  calling
       close(2), but only via the fclose() function.

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 _ Interface StabilityCommitted _ MT-LevelMT-Safe _  Stan‐
       dardSee standards(7).


SEE ALSO
       creat(2),   dup(2),   open(2),   pipe(2),   fclose(3C),   fmemopen(3C),
       fopen(3C), attributes(7), standards(7)

HISTORY
       The fdopen() function has been included in all Sun and Oracle  releases
       of Solaris.


       Support for the "e" (FD_CLOEXEC) and "f" (FD_CLOFORK) characters in the
       mode argument was added to Oracle Solaris in the 11.4.24 release.

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