unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (4.2BSD)
Page:
Section:
Apropos / Subsearch:
optional field

FOPEN(3S)                                                            FOPEN(3S)



NAME
       fopen, freopen, fdopen - open a stream

SYNOPSIS
       #include <&lt;stdio.h>&gt;

       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 identify 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 truncates it, and "a+" positions it at the
       end.  Both reads and writes may be used on read/write streams, with the
       limitation  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 original 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)

DIAGNOSTICS
       Fopen and freopen  return  the  pointer  NULL  if  filename  cannot  be
       accessed.

BUGS
       Fdopen is not portable to systems other than UNIX.

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



4th Berkeley Distribution        1 April 1981                        FOPEN(3S)