Annotation of researchv10dc/man/mana/fstream.3, revision 1.1.1.1

1.1       root        1: .  \"ident     "%W%"
                      2: .  \"Copyright (c) 1984 AT&T
                      3: .  \"All Rights Reserved
                      4: .  \"THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
                      5: .  \"The copyright notice above does not evidence any
                      6: .  \"actual or intended publication of such source code.
                      7: .TH FSTREAM 3I+ "C++ Stream Library" " "
                      8: .SH NAME
                      9: fstream \- iostream and streambuf specialized to files
                     10: .SH SYNOPSIS
                     11: .nf
                     12: .ft B
                     13: .ta1i 2i
                     14: #include <fstream.h>
                     15: 
                     16: typedef long streamoff, streampos;
                     17: class ios {
                     18: public:
                     19:        enum    seek_dir { beg, cur, end };
                     20:        enum open_mode { in, out, ate, app } ;
                     21:        // \fIand lots of other stuff ... \fP
                     22:        } ;
                     23: 
                     24: class ofstream : ostream {
                     25:                ofstream() ;
                     26:                ofstream(char* name, open_mode mode, int prot=0664) ;
                     27:                ofstream(int fd)        ;
                     28:                ofstream(int fd, char* p, int l) ;
                     29: 
                     30:        void    attach(int fd);
                     31:        void    close();
                     32:        void    open(char* name, open_mode, int=0664) ;
                     33:        filebuf*        rdbuf();
                     34: };
                     35: 
                     36: class ifstream : istream {  \fI same as ofstream\fP };
                     37: class fstream : iostream { \fI same as ofstream\fP };
                     38: .fi
                     39: .ft R
                     40: .SH DESCRIPTION
                     41: \f(CWifstream\fRs, \f(CWofstream\fR and \f(CWfstream\fR
                     42: specialize \f(CWistream\fR, \f(CWostream\fR and \f(CWiostream\fR
                     43: (respectively) to files.
                     44: That is, the associated streambuf will be a \f(CWfilebuf\fR.
                     45: .PP
                     46: Assume
                     47: .br
                     48: \(em \fBf\fR any of \f(CWifstream\fR, \f(CWofstream\fR or \f(CWfstream\fR.
                     49: .br
                     50: \(em \fBpfb\fR is a \f(CWfilebuf*\fR.
                     51: .br
                     52: \(em \fBpsb\fR is a \f(CWstreambuf*\fR.
                     53: .br
                     54: \(em \fBname\fR and \fBptr\fR are \f(CWchar*\fR.
                     55: .br
                     56: \(em \fBi\fR, \fBfd\fR, \fBlen\fR and \fBprot\fR are \f(CWint\fR.
                     57: .br
                     58: \(em \fBmode\fR is an \f(CWopen_mode\fR.
                     59: .PP
                     60: The constructors for \fIx\f(CWstream\fR, where \fIx\fR is either
                     61: \f(CWif\fR,
                     62: \f(CWof\fR or \f(CWf\fR, are:
                     63: .TP
                     64: \fIx\fBstream()\fR
                     65: Constructs an unopened \f(CWxstream\fR.
                     66: .TP
                     67: \fIx\fBstream()(name,mode,prot)\fR
                     68: Constructs an \f(CWxstream\fR and tries to opens it using
                     69: \fBname\fR, \fBmode\fR, and \fBprot\fR.
                     70: The status of the constructed \f(CWxstream\fR
                     71: will indicate failure in case the
                     72: \fBopen\fR fails.
                     73: .TP
                     74: \fIx\fBstream()\fR
                     75: Constructs an \f(CWxstream\fR connected to file descriptor \fBd\fR,
                     76: which must be previously opened.
                     77: .TP
                     78: \fIx\fBstream(d,ptr,len)\fR
                     79: Constructs an \f(CWxstream\fR connected to file descriptor \fBfd\fR
                     80: and in addition initializes
                     81: the associated \f(CWfilebuf\fR to use the \fBlen\fR bytes
                     82: at \fBptr\fR as the
                     83: reserve area.  If \fBptr\fR is null or \fBlen\fR is 0, the \f(CWfilebuf\fR
                     84: will be unbuffered.
                     85: .PP
                     86: Member functions:
                     87: .TP
                     88: \fBf.attach(d)\fR
                     89: Connects \fBf\fR to the file descriptor \fBd\fR.
                     90: A failure occurs when \fBf\fR is already connected to a file.
                     91: A failure sets \f(CWfailbit\fR in \fBf\fR's error state.
                     92: .TP
                     93: \fBf.close()\fR
                     94: Closes any associated \f(CWfilebuf\fR and thereby breaks the connection
                     95: of the \fBf\fR to a file.  
                     96: \\fBf\fR's error state is cleared except on failure.
                     97: A failure occurs when the call to \fBf.rdbuf()->close\fR fails.
                     98: .TP
                     99: \fBf.open(name,mode,prot)\fR
                    100: Opens file \fBname\fR and connects \fBf\fR to it.
                    101: If the file is created, it is created with protection mode \fBprot\fR.
                    102: \fBopen\fR normally returns 0, but it returns \f(CWEOF\fR on failure.
                    103: Failure
                    104: occurs if \fBf\fR is already open, or the call to \fBf.rdbuf()->open\fR
                    105: fails.  \f(CWfailbit\fR is set in \fBf\fR's error status on failure.
                    106: The members of \f(CWopen_mode\fR are bits that may be or'ed together.
                    107: The meaning of these bits in \fBmode\fR is 
                    108: .RS
                    109: .TP
                    110: \f(CWapp\fR
                    111: A seek to the end of file is performed.
                    112: Subsequent data written to the file is always added (appended)
                    113: at the end of file.
                    114: On some systems this is implemented in the kernel.
                    115: In
                    116: others it is implemented by seeking to the end of the file
                    117: before each write.  \f(CWapp\fR implies \f(CWoutput\fR.
                    118: .TP
                    119: \f(CWate\fR
                    120: A seek to the end of the file is performed during the \fBopen\fR.
                    121: \f(CWate\fR does not imply \f(CWoutput\fR.
                    122: .TP
                    123: \f(CWin\fR
                    124: Implied by construction and opens of \f(CWifstream\fRs.
                    125: For \f(CWfstream\fRs it indicates that input operations should be
                    126: allowed possible.  Is is legal to include \f(CWin\fR in the modes
                    127: of an \f(CWostream\fR in which case it implies that the original
                    128: file (if it exists) should not be truncated.
                    129: .TP
                    130: \f(CWout\fR
                    131: Implied by construction and opens of \f(CWofstream\fRs.
                    132: For \f(CWfstream\fR it says that output operations are to
                    133: be allowed.
                    134: .RE
                    135: .TP
                    136: \fBpfb=f.rdbuf()\fR
                    137: Returns a pointer to the associated \f(CWfilebuf\fR.
                    138: \fBfstream::rdbuf\fR has the same meaning as
                    139: \fBiostream::rdbuf\fR
                    140: but is typed differently.
                    141: .TP
                    142: \fBpsb=f.setbuf(p,len)\fR
                    143: Has the usual effect of a \fBsetbuf\fR, offering space
                    144: for a reserve area or requesting unbuffered I/O.
                    145: Normally the returned \fBpsb\fR is \fBf.rdbuf()\fR, but it is 0
                    146: on failure.
                    147: A failure occurs if \fBf\fR is open or the call to \fBf.rdbuf()->setbuf\fR
                    148: fails.
                    149: .SH SEE ALSO
                    150: filebuf(3C++)
                    151: istream(3C++)
                    152: ios(3C++)
                    153: ostream(3C++)
                    154: sbuf.pub(3C++)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.