home | help
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 is a character string having one of the following values:

     r or rb		   Open a file for reading.
     w or wb		   Open a file for writing.
     a or ab		   Open  a  file  for writing at end of
			   file.
     r+ or rb+ or r+b	   Open a file for update (reading  and
			   writing).
     w+ or wb+ or w+b	   Open  a file for update (reading and
			   writing).
     a+ or ab+ or a+b	   Open a file for update (reading  and
			   writing) at end of file.

     The  meaning of these flags is exactly as specified for the fopen(3C) func-
     tion, except that modes beginning with w do not  cause  truncation  of  the
     file.

     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 descrip-
     tor.

     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.  Other-
     wise, 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.

     EINVALThe mode argument is not a valid mode.

     EMFILEThe number of streams currently open in the calling process is either
	   FOPEN_MAX or STREAM_MAX.

     ENOMEMInsufficient space to allocate a buffer.

USAGE
     The  number  of  streams  that  a	process  can  have  open  at one time is
     STREAM_MAX. If defined, it has the same value as FOPEN_MAX.

     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 Section 3S library routines.

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

     +------------------------------+-----------------------------+
     |	     ATTRIBUTE TYPE	    |	   ATTRIBUTE VALUE	  |
     +------------------------------+-----------------------------+
     | MT-Level 		    |MT-Safe			  |
     +------------------------------+-----------------------------+

SEE ALSO
     creat(2), dup(2), open(2), pipe(2), fclose(3C), fopen(3C), attributes(5)

SunOS 5.9			   30 Dec 1996			      fdopen(3C)

home | help