std:: basic_filebuf
|
Определено в заголовочном файле
<fstream>
|
||
|
template
<
class
CharT,
|
||
std::basic_filebuf
является
std::basic_streambuf
, чья ассоциированная символьная последовательность представляет собой файл. Как входная, так и выходная последовательности связаны с одним и тем же файлом, и для обеих операций поддерживается единая позиция в файле. Ограничения на чтение и запись последовательности с помощью
std::basic_filebuf
такие же, как для
std::FILE
.
Функции
underflow()
и
overflow()
/
sync()
выполняют фактический ввод-вывод между файлом и областями получения и размещения буфера. Когда
CharT
не является
char
, большинство реализаций хранят многобайтовые символы в файле, а фасет
std::codecvt
используется для выполнения преобразования широких/многобайтовых символов.
Предоставлены несколько typedef для распространённых символьных типов:
|
Определено в заголовочном файле
<fstream>
|
|
| Тип | Определение |
std::filebuf
|
std :: basic_filebuf < char > |
std::wfilebuf
|
std :: basic_filebuf < wchar_t > |
Содержание |
Типы членов
| Тип | Определение |
char_type
|
CharT
|
traits_type
|
Traits
; программа некорректна, если
Traits::char_type
не является
CharT
.
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
, который должен быть
std::
fpos
<
Traits
::
state_type
>
|
off_type
|
Traits::off_type
|
native_handle_type
(C++26)
|
определяемый реализацией
тип, который является
TriviallyCopyable
и
semiregular
|
Функции-члены
Публичные функции-члены |
|
создает объект
basic_filebuf
(публичная функция-член) |
|
|
(C++11)
|
присваивает объект
basic_filebuf
(публичная функция-член) |
|
(C++11)
|
обменивает два объекта
basic_filebuf
(публичная функция-член) |
|
(C++26)
|
возвращает базовый дескриптор, определенный реализацией
(публичная функция-член) |
|
[virtual]
|
уничтожает объект
basic_filebuf
и закрывает файл, если он открыт
(виртуальная публичная функция-член) |
|
проверяет, открыт ли связанный файл
(публичная функция-член) |
|
|
открывает файл и настраивает его как связанную символьную последовательность
(публичная функция-член) |
|
|
сбрасывает буфер области вывода и закрывает связанный файл
(публичная функция-член) |
|
Защищенные функции-члены |
|
|
[virtual]
|
опционально предоставляет количество символов, доступных для ввода из файла
(виртуальная защищенная функция-член) |
|
[virtual]
|
читает из связанного файла
(виртуальная защищенная функция-член) |
|
[virtual]
|
читает из связанного файла и продвигает указатель следующего символа в области ввода
(виртуальная защищенная функция-член) |
|
[virtual]
|
откатывает входную последовательность для возврата символа, не затрагивая связанный файл
(виртуальная защищенная функция-член) |
|
[virtual]
|
записывает символы в связанный файл из области вывода
(виртуальная защищенная функция-член) |
|
[virtual]
|
предоставляет пользовательский буфер или делает этот filebuf небуферизированным
(виртуальная защищенная функция-член) |
|
[virtual]
|
изменяет позицию в файле, используя относительную адресацию
(виртуальная защищенная функция-член) |
|
[virtual]
|
изменяет позицию в файле, используя абсолютную адресацию
(виртуальная защищенная функция-член) |
|
[virtual]
|
записывает символы в связанный файл из области вывода
(виртуальная защищенная функция-член) |
|
[virtual]
|
изменяет связанную локаль
(виртуальная защищенная функция-член) |
Функции, не являющиеся членами класса
|
(C++11)
|
специализирует алгоритм
std::swap
(шаблон функции) |
Наследуется от std:: basic_streambuf
Типы членов
| Тип члена | Определение |
char_type
|
CharT
|
traits_type
|
Traits
; программа некорректна, если
Traits::char_type
не является
CharT
.
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
Функции-члены
|
[virtual]
|
уничтожает объект
basic_streambuf
(виртуальная публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
Локали |
|
|
изменяет связанную локаль и вызывает
imbue
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
получает копию связанной локали
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
Позиционирование |
|
|
вызывает
setbuf
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
вызывает
seekoff
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
вызывает
seekpos
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
вызывает
sync
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
Область получения |
|
|
получает количество символов, немедленно доступных в области получения
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
продвигает входную последовательность, затем читает один символ без дальнейшего продвижения
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
(удалено в C++17)
|
читает один символ из входной последовательности и продвигает последовательность
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
читает один символ из входной последовательности без продвижения последовательности
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
вызывает
xsgetn
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
Область записи |
|
|
записывает один символ в область записи и продвигает указатель следующего
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
вызывает
xsputn
(
)
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
Возврат |
|
|
возвращает один символ обратно во входную последовательность
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
перемещает указатель следующего во входной последовательности назад на один
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
Защищенные функции-члены
создаёт объект
basic_streambuf
(защищённая функция-член) |
|
|
(C++11)
|
заменяет объект
basic_streambuf
(защищённая функция-член) |
|
(C++11)
|
обменивает два
basic_streambuf
объекта
(защищённая функция-член) |
Локали |
|
|
[virtual]
|
реагирует на изменение связанной локали
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
Позиционирование |
|
|
[virtual]
|
заменяет буфер пользовательским массивом, если разрешено
(виртуальная защищенная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя относительную адресацию
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
перемещает следующий указатель во входной последовательности, выходной последовательности или в обеих, используя абсолютную адресацию
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
синхронизирует буферы с ассоциированной последовательностью символов
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
Получить площадь |
|
|
[virtual]
|
получает количество символов, доступных для ввода в связанной входной последовательности, если известно
(виртуальная защищенная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
читает символы из связанной входной последовательности в область получения
(виртуальная защищенная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
читает символы из связанной входной последовательности в область получения и продвигает указатель следующего символа
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
считывает несколько символов из входной последовательности
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
возвращает указатель на начало, текущий символ и конец области получения
(защищённая функция-член) |
|
|
перемещает указатель следующего элемента во входной последовательности
(защищённая функция-член) |
|
|
переставляет указатели начала, следующего и конца входной последовательности
(защищённая функция-член) |
|
Область размещения |
|
|
[virtual]
|
записывает несколько символов в выходную последовательность
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
записывает символы в связанную выходную последовательность из области вывода
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
возвращает указатель на начало, текущий символ и конец области вывода
(защищённая функция-член) |
|
|
перемещает указатель следующего элемента выходной последовательности
(защищённая функция-член) |
|
|
изменяет позиции указателей начала, следующего элемента и конца выходной последовательности
(защищённая функция-член) |
|
Putback |
|
|
[virtual]
|
возвращает символ обратно во входную последовательность, возможно изменяя входную последовательность
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
Примечания
| Макрос тестирования возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_fstream_native_handle
|
202306L
|
(C++26) | Поддержка нативных дескрипторов |
Смотрите также
|
тип объекта, способный хранить всю информацию, необходимую для управления потоком ввода-вывода в C
(typedef) |