# 2.11BSD#431 - /usr/man/cat3/fdopen.0

    FOPEN(3S)	    UNIX Programmer's Manual		FOPEN(3S)

    NAME
         fopen, freopen, fdopen - open a stream

    SYNOPSIS
         #include <stdio.h>

         FILE *fopen(filename, type)
         char *filename, *type;

         FILE *freopen(filename, type, stream)
         char *filename, *type;
         FILE *stream;

         FILE *fdopen(fildes, type)
         char *type;

    DESCRIPTION
         Fopen opens the file named by filename and associates a
         stream with it.  Fopen returns a pointer to be used to iden-
         tify the stream in subsequent operations.

         Type is a character string having one of the following
         values:

         "r"  open for reading

         "w"  create for writing

         "a"  append: open for writing at end of file, or create for
    	  writing

         In addition, each type may be followed by a "+" to have the
         file opened for reading and writing.  "r+" positions the
         stream at the beginning of the file, "w+" creates or trun-
         cates it, and "a+" positions it at the end.  Both reads and
         writes may be used on read/write streams, with the limita-
         tion that an fseek, rewind, or reading an end-of-file must
         be used between a read and a write or vice-versa.

         Freopen substitutes the named file in place of the open
         stream.  It returns the original value of stream.	The ori-
         ginal stream is closed.

         Freopen is typically used to attach the preopened constant
         names, stdin, stdout, stderr, to specified files.

         Fdopen associates a stream with a file descriptor obtained
         from open, dup, creat, or pipe(2).  The type of the stream
         must agree with the mode of the open file.

    SEE ALSO
         open(2), fclose(3)

    Printed 11/26/99	  May 27, 1986				1

    FOPEN(3S)	    UNIX Programmer's Manual		FOPEN(3S)

    DIAGNOSTICS
         Fopen and freopen return the pointer NULL if filename cannot
         be accessed, if too many files are already open, or if other
         resources needed cannot be allocated.

    BUGS
         Fdopen is not portable to systems other than UNIX.

         The read/write types do not exist on all systems.	Those
         systems without read/write modes will probably treat the
         type as if the "+" was not present.  These are unreliable in
         any event.

         In order to support the same number of open files as does
         the system, fopen must allocate additional memory for data
         structures using calloc after 20 files have been opened.
         This confuses some programs which use their own memory allo-
         cators.  An undocumented routine, f_prealloc, may be called
         to force immediate allocation of all internal memory except
         for buffers.

    Printed 11/26/99	  May 27, 1986				2

Generated: 2016-12-26 | Generated by man2html V0.25 page hit count: 265 |