Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fclose(3)

open(2)

FOPEN(3S)  —  Kubota Pacfic Computer Inc. (Standard I/O Library Functions−BSD)

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 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

fclose(3), open(2)

DIAGNOSTICS

fopen and freopen return the NULL pointer 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 probably treat the type as if the "+" were 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 allocators.  An undocumented routine, f_prealloc, may be called to force immediate allocation of all internal memory except for buffers.

September 02, 1992

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