|
|
1.1 ! root 1: /*** ! 2: *stdiostr.h - definitions/declarations for stdiobuf, stdiostream ! 3: * ! 4: * Copyright (c) 1991-1992, Microsoft Corporation. All rights reserved. ! 5: * ! 6: *Purpose: ! 7: * This file defines the classes, values, macros, and functions ! 8: * used by the stdiostream and stdiobuf classes. ! 9: * [AT&T C++] ! 10: * ! 11: ****/ ! 12: ! 13: #include <iostream.h> ! 14: #include <stdio.h> ! 15: ! 16: // Force word packing to avoid possible -Zp override ! 17: #pragma pack(4) ! 18: ! 19: #pragma warning(disable:4505) // disable unwanted /W4 warning ! 20: // #pragma warning(default:4505) // use this to reenable, if necessary ! 21: ! 22: #ifndef _INC_STDIOSTREAM ! 23: #define _INC_STDIOSTREAM ! 24: class stdiobuf : public streambuf { ! 25: public: ! 26: stdiobuf(FILE* f); ! 27: FILE * stdiofile() { return _str; } ! 28: ! 29: virtual int pbackfail(int c); ! 30: virtual int overflow(int c = EOF); ! 31: virtual int underflow(); ! 32: virtual streampos seekoff( streamoff, ios::seek_dir, int =ios::in|ios::out); ! 33: virtual int sync(); ! 34: ~stdiobuf(); ! 35: int setrwbuf(int _rsize, int _wsize); // CONSIDER: move to ios:: ! 36: // protected: ! 37: // virtual int doallocate(); ! 38: private: ! 39: FILE * _str; ! 40: }; ! 41: ! 42: // obsolescent ! 43: class stdiostream : public iostream { // note: spec.'d as : public IOS... ! 44: public: ! 45: stdiostream(FILE *); ! 46: ~stdiostream(); ! 47: stdiobuf* rdbuf() const { return (stdiobuf*) ostream::rdbuf(); } ! 48: ! 49: private: ! 50: }; ! 51: ! 52: // Restore default packing ! 53: #pragma pack() ! 54: ! 55: #endif // !_INC_STDIOSTREAM
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.