100 lines
2.3 KiB
Groff
100 lines
2.3 KiB
Groff
|
.\" Copyright (c) 1980 Regents of the University of California.
|
||
|
.\" All rights reserved. The Berkeley software License Agreement
|
||
|
.\" specifies the terms and conditions for redistribution.
|
||
|
.\"
|
||
|
.\" @(#)fopen.3s 6.3 (Berkeley) 5/27/86
|
||
|
.\"
|
||
|
.TH FOPEN 3 "May 27, 1986"
|
||
|
.UC 4
|
||
|
.SH NAME
|
||
|
fopen, freopen, fdopen \- open a stream
|
||
|
.SH SYNOPSIS
|
||
|
.nf
|
||
|
.ft B
|
||
|
#include <stdio.h>
|
||
|
|
||
|
FILE *fopen(const char *\fIfilename\fP, const char *\fItype\fP)
|
||
|
FILE *freopen(const char *\fIfilename\fP, const char *\fItype\fP, FILE *\fIstream\fP)
|
||
|
FILE *fdopen(int \fIfildes\fP, const char *\fItype\fP)
|
||
|
.ft R
|
||
|
.fi
|
||
|
.SH DESCRIPTION
|
||
|
.B Fopen
|
||
|
opens the file named by
|
||
|
.I filename
|
||
|
and associates a stream with it.
|
||
|
.B Fopen
|
||
|
returns a pointer to be used to identify the stream in subsequent operations.
|
||
|
.PP
|
||
|
.I Type
|
||
|
is a character string having one of the following values:
|
||
|
.TP 5
|
||
|
"r"
|
||
|
open for reading
|
||
|
.ns
|
||
|
.TP 5
|
||
|
"w"
|
||
|
create for writing
|
||
|
.ns
|
||
|
.TP 5
|
||
|
"a"
|
||
|
append: open for writing at end of file, or create for writing
|
||
|
.PP
|
||
|
In addition, each
|
||
|
.I 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
|
||
|
.BR fseek ,
|
||
|
.BR rewind ,
|
||
|
or reading an end-of-file must be used between a read and a write or vice-versa.
|
||
|
.PP
|
||
|
.B Freopen
|
||
|
substitutes the named file in place of the open
|
||
|
.IR stream .
|
||
|
It returns the original value of
|
||
|
.IR stream .
|
||
|
The original stream is closed.
|
||
|
.PP
|
||
|
.B Freopen
|
||
|
is typically used to attach the preopened constant names,
|
||
|
.B stdin, stdout, stderr,
|
||
|
to specified files.
|
||
|
.PP
|
||
|
.B Fdopen
|
||
|
associates a stream with a file descriptor obtained from
|
||
|
.BR open ,
|
||
|
.BR dup ,
|
||
|
.BR creat ,
|
||
|
or
|
||
|
.BR pipe (2).
|
||
|
The
|
||
|
.I type
|
||
|
of the stream must agree with the mode of the open file.
|
||
|
.SH "SEE ALSO"
|
||
|
.BR open (2),
|
||
|
.BR fclose (3).
|
||
|
.SH DIAGNOSTICS
|
||
|
.B Fopen
|
||
|
and
|
||
|
.B freopen
|
||
|
return the pointer
|
||
|
.SM
|
||
|
.B NULL
|
||
|
if
|
||
|
.I filename
|
||
|
cannot be accessed,
|
||
|
if too many files are already open,
|
||
|
or if other resources needed cannot be allocated.
|
||
|
.SH BUGS
|
||
|
.B Fdopen
|
||
|
is not portable to systems other than UNIX.
|
||
|
.PP
|
||
|
The read/write
|
||
|
.I types
|
||
|
do not exist on all systems. Those systems without
|
||
|
read/write modes will probably treat the
|
||
|
.I type
|
||
|
as if the "+" was not present. These are unreliable in any event.
|