bool BufferedFile::open( const char* path, const FileType type, const FileMode mode, const size_t buffer_size) { assert(m_file == 0); assert(path); assert(buffer_size > 0); const string mode_string = build_mode_string(type, mode); m_file = fopen(path, mode_string.c_str()); if (m_file == 0) return false; m_file_mode = mode; m_file_index = 0; m_buffer = new uint8[buffer_size]; m_buffer_size = buffer_size; m_buffer_end = mode == ReadMode ? 0 : m_buffer_size; m_buffer_index = 0; return true; }
filetype* file_reopen(const char *filename, int mode, filetype *stream) { return freopen(filename, build_mode_string(mode), stream); }
filetype* file_open(const char *filename, int mode) { return fopen(filename, build_mode_string(mode)); }