<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Crystal Space 1.2.1: Virtual File System (VFS) (Crystal Space 1.2.1 Public API Reference)</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="head"> <tr height="59"> <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td> <td class="head"><h2>Public API Reference</h2></td> </tr> <tr height="11"> <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td> </tr> </table> <div class="content"> <!-- Generated by Doxygen 1.5.3 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <h1>Virtual File System (VFS)</h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcsFileTime.html">csFileTime</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">File time structure - used to query and set the last-modification time of a file. <a href="structcsFileTime.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structiFile.html">iFile</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A replacement for FILE type in the virtual file space. <a href="structiFile.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structiVFS.html">iVFS</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The Virtual Filesystem Class is intended to be the only way for Crystal Space engine to access the files. <a href="structiVFS.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>File opening flags</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g4c74af62f4c9462116ac6890a5cc8c8f">VFS_FILE_APPEND</a> 0x00000002</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Open file for append. <a href="#g4c74af62f4c9462116ac6890a5cc8c8f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g8e6b141a580423e1d638b6964c8ebfdc">VFS_FILE_MODE</a> 0x0000000f</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">File open mode mask. <a href="#g8e6b141a580423e1d638b6964c8ebfdc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#gba6832b0add5ef2fd23abddbc8288822">VFS_FILE_READ</a> 0x00000000</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Open file for reading. <a href="#gba6832b0add5ef2fd23abddbc8288822"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#gcaa8a2fbb1274d54b6d4646a667c1a75">VFS_FILE_UNCOMPRESSED</a> 0x80000000</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Store file uncompressed (no gain possible). <a href="#gcaa8a2fbb1274d54b6d4646a667c1a75"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g69dd3ad75290635fff3f282398b15647">VFS_FILE_WRITE</a> 0x00000001</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Open file for writing. <a href="#g69dd3ad75290635fff3f282398b15647"></a><br></td></tr> <tr><td colspan="2"><br><h2>File status codes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#gf655ca2c3b3f4c242b7e719f83d73e3c">VFS_STATUS_ACCESSDENIED</a> 4</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Access denied: either you have no write access, the filesystem is read-only or you tried to read a file opened for write access. <a href="#gf655ca2c3b3f4c242b7e719f83d73e3c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#gbbc89b124421b6525f9332c38767337f">VFS_STATUS_IOERROR</a> 5</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An error occured during reading or writing data. <a href="#gbbc89b124421b6525f9332c38767337f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#gca3e703c9d51b2f00aac916ce33d840e">VFS_STATUS_NOSPACE</a> 2</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Device has no more space for file data. <a href="#gca3e703c9d51b2f00aac916ce33d840e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g27ec68419e79b3faa5a2eacdaceebe47">VFS_STATUS_OK</a> 0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">File status ok. <a href="#g27ec68419e79b3faa5a2eacdaceebe47"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g22a0f09acfe1aa0f8420f86e6007ca9e">VFS_STATUS_OTHER</a> 1</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unclassified error. <a href="#g22a0f09acfe1aa0f8420f86e6007ca9e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g10ed068e274e218f03f3faca92bfa078">VFS_STATUS_RESOURCES</a> 3</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Not enough system resources. <a href="#g10ed068e274e218f03f3faca92bfa078"></a><br></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g57d3a33621fb4710ab64f2bcfb18d30c">ASSIGN_FILETIME</a>(ft, tm)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This macro can be used to assign a "struct tm" to a <a class="el" href="structcsFileTime.html" title="File time structure - used to query and set the last-modification time of a file...">csFileTime</a>. <a href="#g57d3a33621fb4710ab64f2bcfb18d30c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#gf70c17caf04101784a2ae3f16c38b7c1">VFS_MAX_PATH_LEN</a> 256</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The maximal "virtual" path+filename length. <a href="#gf70c17caf04101784a2ae3f16c38b7c1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g1aacdb5b87745d0bb6183c80fed81a47">VFS_PATH_DIVIDER</a> ','</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Composite path divider. <a href="#g1aacdb5b87745d0bb6183c80fed81a47"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vfs.html#g2968b7fe281a48fe2d905ca0bce2dad1">VFS_PATH_SEPARATOR</a> '/'</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The "virtual" path separator. <a href="#g2968b7fe281a48fe2d905ca0bce2dad1"></a><br></td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="g57d3a33621fb4710ab64f2bcfb18d30c"></a><!-- doxytag: member="vfs.h::ASSIGN_FILETIME" ref="g57d3a33621fb4710ab64f2bcfb18d30c" args="(ft, tm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ASSIGN_FILETIME </td> <td>(</td> <td class="paramtype">ft, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tm </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">(ft).sec = (tm).tm_sec; \ (ft).min = (tm).tm_min; \ (ft).hour = (tm).tm_hour; \ (ft).day = (tm).tm_mday; \ (ft).mon = (tm).tm_mon; \ (ft).year = (tm).tm_year + 1900; </pre></div>This macro can be used to assign a "struct tm" to a <a class="el" href="structcsFileTime.html" title="File time structure - used to query and set the last-modification time of a file...">csFileTime</a>. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00056">56</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="g4c74af62f4c9462116ac6890a5cc8c8f"></a><!-- doxytag: member="vfs.h::VFS_FILE_APPEND" ref="g4c74af62f4c9462116ac6890a5cc8c8f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_FILE_APPEND 0x00000002 </td> </tr> </table> </div> <div class="memdoc"> <p> Open file for append. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00080">80</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="g8e6b141a580423e1d638b6964c8ebfdc"></a><!-- doxytag: member="vfs.h::VFS_FILE_MODE" ref="g8e6b141a580423e1d638b6964c8ebfdc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_FILE_MODE 0x0000000f </td> </tr> </table> </div> <div class="memdoc"> <p> File open mode mask. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00074">74</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="gba6832b0add5ef2fd23abddbc8288822"></a><!-- doxytag: member="vfs.h::VFS_FILE_READ" ref="gba6832b0add5ef2fd23abddbc8288822" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_FILE_READ 0x00000000 </td> </tr> </table> </div> <div class="memdoc"> <p> Open file for reading. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00076">76</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="gcaa8a2fbb1274d54b6d4646a667c1a75"></a><!-- doxytag: member="vfs.h::VFS_FILE_UNCOMPRESSED" ref="gcaa8a2fbb1274d54b6d4646a667c1a75" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_FILE_UNCOMPRESSED 0x80000000 </td> </tr> </table> </div> <div class="memdoc"> <p> Store file uncompressed (no gain possible). <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00082">82</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="g69dd3ad75290635fff3f282398b15647"></a><!-- doxytag: member="vfs.h::VFS_FILE_WRITE" ref="g69dd3ad75290635fff3f282398b15647" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_FILE_WRITE 0x00000001 </td> </tr> </table> </div> <div class="memdoc"> <p> Open file for writing. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00078">78</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="gf70c17caf04101784a2ae3f16c38b7c1"></a><!-- doxytag: member="vfs.h::VFS_MAX_PATH_LEN" ref="gf70c17caf04101784a2ae3f16c38b7c1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_MAX_PATH_LEN 256 </td> </tr> </table> </div> <div class="memdoc"> <p> The maximal "virtual" path+filename length. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00069">69</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="g1aacdb5b87745d0bb6183c80fed81a47"></a><!-- doxytag: member="vfs.h::VFS_PATH_DIVIDER" ref="g1aacdb5b87745d0bb6183c80fed81a47" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_PATH_DIVIDER ',' </td> </tr> </table> </div> <div class="memdoc"> <p> Composite path divider. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00065">65</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="g2968b7fe281a48fe2d905ca0bce2dad1"></a><!-- doxytag: member="vfs.h::VFS_PATH_SEPARATOR" ref="g2968b7fe281a48fe2d905ca0bce2dad1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_PATH_SEPARATOR '/' </td> </tr> </table> </div> <div class="memdoc"> <p> The "virtual" path separator. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00067">67</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="gf655ca2c3b3f4c242b7e719f83d73e3c"></a><!-- doxytag: member="vfs.h::VFS_STATUS_ACCESSDENIED" ref="gf655ca2c3b3f4c242b7e719f83d73e3c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_STATUS_ACCESSDENIED 4 </td> </tr> </table> </div> <div class="memdoc"> <p> Access denied: either you have no write access, the filesystem is read-only or you tried to read a file opened for write access. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00099">99</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="gbbc89b124421b6525f9332c38767337f"></a><!-- doxytag: member="vfs.h::VFS_STATUS_IOERROR" ref="gbbc89b124421b6525f9332c38767337f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_STATUS_IOERROR 5 </td> </tr> </table> </div> <div class="memdoc"> <p> An error occured during reading or writing data. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00101">101</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="gca3e703c9d51b2f00aac916ce33d840e"></a><!-- doxytag: member="vfs.h::VFS_STATUS_NOSPACE" ref="gca3e703c9d51b2f00aac916ce33d840e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_STATUS_NOSPACE 2 </td> </tr> </table> </div> <div class="memdoc"> <p> Device has no more space for file data. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00092">92</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="g27ec68419e79b3faa5a2eacdaceebe47"></a><!-- doxytag: member="vfs.h::VFS_STATUS_OK" ref="g27ec68419e79b3faa5a2eacdaceebe47" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_STATUS_OK 0 </td> </tr> </table> </div> <div class="memdoc"> <p> File status ok. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00088">88</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="g22a0f09acfe1aa0f8420f86e6007ca9e"></a><!-- doxytag: member="vfs.h::VFS_STATUS_OTHER" ref="g22a0f09acfe1aa0f8420f86e6007ca9e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_STATUS_OTHER 1 </td> </tr> </table> </div> <div class="memdoc"> <p> Unclassified error. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00090">90</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <a class="anchor" name="g10ed068e274e218f03f3faca92bfa078"></a><!-- doxytag: member="vfs.h::VFS_STATUS_RESOURCES" ref="g10ed068e274e218f03f3faca92bfa078" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VFS_STATUS_RESOURCES 3 </td> </tr> </table> </div> <div class="memdoc"> <p> Not enough system resources. <p> <p>Definition at line <a class="el" href="vfs_8h-source.html#l00094">94</a> of file <a class="el" href="vfs_8h-source.html">vfs.h</a>.</p> </div> </div><p> <hr size="1"><address><small>Generated for Crystal Space 1.2.1 by <a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 </small></address> </div></body> </html>