Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fopen(3) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

open(2)

pipe(2)

fclose(3S)

fseek(3S)

fopen(3S)

malloc(3C)



fopen(3S-BSD)     MISC. REFERENCE MANUAL PAGES      fopen(3S-BSD)



NAME
     fopen, freopen, fdopen - open a stream

SYNOPSIS
     cc [ flag... ] file ... -lucb
     #include <stdio.h>
     FILE *fopen(filename, type)
     char *filename, *type;
     FILE *freopen(filename, type, stream)
     char *filename, *type;
     FILE *stream;
     FILE *fdopen(fildes, type)
     int fildes;
     char *type;

DESCRIPTION
     fopen opens the file named  by  filename  and  associates  a
     stream  with  it.   If  the  open  succeeds, fopen returns a
     pointer to be used to  identify  the  stream  in  subsequent
     operations.  filename points to a character string that con-
     tains the name of the file to be opened.  type is a  charac-
     ter string having one of the following values:

          r    open for reading

          w    truncate or create for writing

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

          r+   open for update (reading and writing)

          w+   truncate or create for update

          a+   append; open or create for update at EOF
     freopen opens the file named by filename and associates  the
     stream  pointed  to by stream with it.  The type argument is
     used just as in  fopen.   The  original  stream  is  closed,
     regardless  of whether the open ultimately succeeds.  If the
     open succeeds, freopen returns the original value of stream.
     freopen  is  typically  used to attach the preopened streams
     associated with stdin, stdout, and stderr  to  other  files.
     fdopen  associates a stream with the file descriptor fildes.
     File descriptors are obtained from  calls  like  open,  dup,
     creat,  or  pipe(2),  which  open  files  but  do not return
     streams.  Streams are necessary input for many of  the  Sec-
     tion 3S library routines.  The type of the stream must agree
     with the mode of the open file.  When a file is  opened  for
     update,  both  input and output may be done on the resulting
     stream.  However, output may not  be  directly  followed  by
     input  without an intervening fseek or rewind, and input may
     not be directly followed by output  without  an  intervening



                                                                1





fopen(3S-BSD)     MISC. REFERENCE MANUAL PAGES      fopen(3S-BSD)



     fseek, rewind, or an input operation which encounters EOF.

SEE ALSO
     open(2),   pipe(2),   fclose(3S),   fseek(3S),    fopen(3S),
     malloc(3C) in the Programmer's Reference Manual.

RETURN VALUE
     fopen, freopen, and fdopen return a NULL pointer on failure.

NOTES
     fopen differs from the library routine of the same  name  in
     the  base system only in interface.  In order to support the
     same number of open files that the system does,  fopen  must
     allocate  additional memory for data structures using calloc
     [see malloc(3)] after 64 files have been opened.  This  con-
     fuses some programs which use their own memory allocators.







































                                                                2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026