29 #ifndef _STDIO_FILEBUF_H
30 #define _STDIO_FILEBUF_H 1
32 #pragma GCC system_header
36 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
46 template<typename _CharT, typename _Traits = std::char_traits<_CharT> >
51 typedef _CharT char_type;
52 typedef _Traits traits_type;
53 typedef typename traits_type::int_type int_type;
54 typedef typename traits_type::pos_type pos_type;
55 typedef typename traits_type::off_type off_type;
56 typedef std::size_t size_t;
74 size_t __size = static_cast<size_t>(BUFSIZ));
86 stdio_filebuf(std::__c_file* __f, std::ios_base::openmode __mode,
87 size_t __size = static_cast<size_t>(BUFSIZ));
105 fd() {
return this->_M_file.fd(); }
115 file() {
return this->_M_file.file(); }
118 template<
typename _CharT,
typename _Traits>
122 template<
typename _CharT,
typename _Traits>
126 this->_M_file.sys_open(__fd, __mode);
129 this->_M_mode = __mode;
130 this->_M_buf_size = __size;
131 this->_M_allocate_internal_buffer();
132 this->_M_reading =
false;
133 this->_M_writing =
false;
134 this->_M_set_buffer(-1);
138 template<
typename _CharT,
typename _Traits>
143 this->_M_file.sys_open(__f, __mode);
146 this->_M_mode = __mode;
147 this->_M_buf_size = __size;
148 this->_M_allocate_internal_buffer();
149 this->_M_reading =
false;
150 this->_M_writing =
false;
151 this->_M_set_buffer(-1);
155 _GLIBCXX_END_NAMESPACE
Provides a layer of compatibility for C/POSIX.