|
|
1.1 root 1: /* This is part of libio/iostream, providing -*- C++ -*- input/output.
2: Copyright (C) 1993 Free Software Foundation
3:
4: This file is part of the GNU IO Library. This library is free
5: software; you can redistribute it and/or modify it under the
6: terms of the GNU General Public License as published by the
7: Free Software Foundation; either version 2, or (at your option)
8: any later version.
9:
10: This library is distributed in the hope that it will be useful,
11: but WITHOUT ANY WARRANTY; without even the implied warranty of
12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: GNU General Public License for more details.
14:
15: You should have received a copy of the GNU General Public License
16: along with GNU CC; see the file COPYING. If not, write to
17: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18:
19: As a special exception, if you link this library with files
20: compiled with a GNU compiler to produce an executable, this does not cause
21: the resulting executable to be covered by the GNU General Public License.
22: This exception does not however invalidate any other reasons why
23: the executable file might be covered by the GNU General Public License.
24:
25: Written by Per Bothner ([email protected]). */
26:
27: #ifdef __GNUG__
28: #pragma implementation
29: #endif
30: #define _STREAM_COMPAT
31: #include "libioP.h"
32:
33: #include <fstream.h>
34:
35: fstreambase::fstreambase()
36: {
37: init(filebuf::__new());
38: }
39:
40: fstreambase::fstreambase(int fd)
41: {
42: init(filebuf::__new());
43: _IO_file_attach(rdbuf(), fd);
44: }
45:
46: fstreambase::fstreambase(const char *name, int mode, int prot)
47: {
48: init(filebuf::__new());
49: if (!rdbuf()->open(name, mode, prot))
50: set(ios::badbit);
51: }
52:
53: fstreambase::fstreambase(int fd, char *p, int l)
54: {
55: init(filebuf::__new());
56: _IO_file_attach(rdbuf(), fd);
57: _IO_file_setbuf(rdbuf(), p, l);
58: }
59:
60: void fstreambase::open(const char *name, int mode, int prot)
61: {
62: clear();
63: if (!rdbuf()->open(name, mode, prot))
64: set(ios::badbit);
65: }
66:
67: void fstreambase::close()
68: {
69: if (!rdbuf()->close())
70: set(ios::failbit);
71: }
72:
73: #if 0
74: static int mode_to_sys(enum open_mode mode)
75: {
76: return O_WRONLY;
77: }
78:
79: static char* fopen_cmd_arg(io_mode i)
80: {
81: return "w";
82: }
83: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.