|
||||
|
8.3.1 Инициализация Потоков Вывода ostream имеет конструкторы: class ostream (* // ... ostream(streambuf* s); // связывает с буфером потока ostream(int fd); // связывание для файла ostream(int size, char* p); // связывает с вектором *); Главная работа этих конструкторов – связывать с потоком буфер. streambuf – класс, управляющий буферами; он описываеся в #8.6, как и класс filebuf, управляющий streambuf для файла. Класс filebuf является производным от класса streambuf. Описание стандартных потоков вывода cout и cerr, которое находится в исходных кодах библиотеки потоков ввода/вывода, выглядит так: // описать подходящее пространство буфера char cout_buf[BUFSIZE] // сделать «filebuf» для управления этим пространством //связать его с UNIX'овским потоком вывода 1 (уже открытым) filebuf cout_file(1,cout_buf,BUFSIZE); // сделать ostream, обеспечивая пользовательский интерфейс ostream cout( amp;cout_file); char cerr_buf[1]; // длина 0, то есть, небуферизованный // UNIX'овский поток вывода 2 (уже открытый) filebuf cerr_file(2,cerr_buf,0); ostream cerr( amp;cerr_file); Примеры двух других конструкторов ostream можно найти в #8.3.3 и #8.5. |
|
||