MFile

From MaratisWiki
Jump to: navigation, search

File I/O class. This interface can be used manually, but will usually be used from the MFileTools interface, to more closely match standard C file I/O.

Contents

API

virtual MFile::~MFile(void)

Destructor.

virtual void MFile::open(const char *path, const char *mode)=0

Opens a file stream with the name specified by path. This usually should not be used directly and should be opened from the MFileTools interface.

virtual int MFile::close()=0

Close a file stream, if open.

virtual size_t MFile::read(void *dest, size_t size, size_t count)=0

Reads count amount of elements of data, each size bytes long, from the file, storing them at the location given by dest. Returns the number of items successfully read. If an error occurs, or the end-of-file is reached, the return value is a short item count (or zero).

virtual size_t MFile::write(const void *str, size_t size, size_t count)=0

Writes count amount of elements of data, each size bytes long, to the file, obtaining them from the location given by str. Returns the number of items successfully written.

virtual int MFile::print(const char *format,...)=0

Produces output according to the standard printf() style format and writes to the file. Returns the number of characters written to the file (excluding the null byte used to end output strings).

virtual int MFile::print(const char *format, va_list args)=0

Produces output according to the standard printf() style format and writes to the file. Returns the number of characters written to the file (excluding the null byte used to end output strings).

virtual int MFile::seek(long offset, int whence)=0

Sets the file position indicator. The new position, measured in bytes, is obtained by adding offset bytes to the position specified by whence. If whence is set to SEEK_SET, SEEK_CUR, or SEEK_END, the offset is relative to the start of the file, the current position indicator, or end-of-file respectively.

virtual long MFile::tell()=0

Obtains the current value of the file position indicator for the file.

virtual void MFile::rewind()=0

Sets the file position indicator to the beginning of the file.

virtual bool MFile::isOpen()=0

Checks if file is open.

virtual void MFile::destroy()=0

Destroy file stream.


Examples

Note: Usually the file interface won't be used directly. See:MFileTools

MFile* fp = M_fopen("filename.txt", "r");
fp->seek(0L, SEEK_END);
long size = fp->tell();
char* buffer = new char[size];
fp->rewind();
fp->read(buffer, 1, size);
fp->close();
fp->destroy(); // if we're not using the MFileTools interface, we need to manually destroy
delete [] buffer;
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox