Функции класса filebuf

Таблица Функции класса filebuf

Функция Назначение
open Открывает файл для чтения/записи, связывая с ним объект класса filebuf
close Закрывает файл
setmode Задает режим доступа к файлу: двоичный (константа filebuf::binary) или текстовый (константа filebuf::text)
attach Связывает указанный открытый файл с объектом класса filebuf
fd Возвращает дескриптор класса
is_open Проверяет, открыт ли файл, связанный с потоком

Функции класса streambuf

Семейство функций-элементов streambuf используется классами, основанными на ios. Любой класс, порожденный от ios, наследует указатель на объект класса streambuf. Объекты класса streambuf управляют фиксированной областью памяти, называемой также областью резервирования, которая в свою очередь может быть разделена на область ввода и вывода (они могут перекрывать друг друга).

Класс streambuf является абстрактным, т.е. создать его объект напрямую нельзя (его конструктор является защищенным и не может быть вызван из программы). Можно создавать собственные классы, порожденные от streambuf, переопределяя его виртуальные функции и настраивая его работу в соответствии с потребностями конкретного приложения. Только из производных классов можно вызвать многочисленные защищенные функции этого класса, управляющие областью резервирования.

Таблица Открытые функции класса streambuf

Функция Назначение
in_avail Возвращает число символов в области ввода
sgetc Возвращает символ, на который ссылается указатель области ввода; при этом указатель не перемещается
snextc Перемещает указатель области ввода на одну позицию вперед, после чего возвращает текущий символ
sbumpc Возвращает текущий символ и затем перемещает указатель области ввода на одну позицию вперед
stossc Перемещает указатель области ввода на одну позицию вперед, но не возвращает символ
sputbackc Перемещает указатель области ввода на одну позицию назад, возвращая символ в буфер
sgetn Читает требуемое количество символов из буфера
out_waiting Возвращает число символов в области вывода
sputc Записывает символ в буфер и перемещает указатель области вывода на одну позицию вперед
sputn Записывает требуемое количество символов в буфер и перемещает указатель области вывода на соответствующее число позиций вперед
dbp В текстовом виде записывает в стандартный выходной поток различного рода информацию о состоянии буфера

Таблица Виртуальные функции класса streambuf

Функция Назначение
base Возвращает указатель на начало области резервирования
ebuf Возвращает указатель на конец области резервирования
blen Возвращает размер области резервирования
pbase Возвращает указатель на начало области вывода
pptr Возвращает значение указателя области вывода
epptr Возвращает указатель на конец области ввода
eback Возвращает указатель на начало области ввода
gptr Возвращает значение указателя области ввода
egptr Возвращает указатель на конец области вывода
setp Задает значения указателей, связанных с областью вывода
setg Задает значения указателей, связанных с областью ввода
pbump Перемещает указатель области вывода на указанное число байтов относительно текущей позиции
gbump Перемещает указатель области ввода на указанное число байтов относительно текущей позиции
setb Задает значения указателей, связанных с областью резервирования
unbuffered Задает или возвращает значение переменной, определяющей состояние буфера
allocate Вызывает виртуальную функцию doallocate для создания области резервирования
doallocate Выделяет память для области резервирования (виртуальная функция)

Таблица Виртуальные функции класса streambuf

Функция Назначение
sync Очищает области ввода и вывода
setbuf Добавляет к буферу указанную зарезервированную область памяти
seekoff Перемещает указатель области ввода или вывода на указанное количество байтов
seekpos Перемещает указатель области ввода или вывода на указанную позицию относительно начала потока
overflow Очищает область вывода
underflow Если область ввода пуста, заполняет ее данными из источника
pbackfail Вызывается функцией sputbackc() в случае неудачной попытки вернуться назад на один символ

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: