<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>PhysFS_mount()</title>
		<link>http://www.allegro.cc/forums/view/609868</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 29 Mar 2012 20:11:11 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m trying to write to a file (again) while using PhysFS.</p><p>How to use al_fputc() for instance, without switching to the standard file interface?</p><p>I have mounted the &quot;./&quot; directory as root. I&#39;m not even sure if that&#39;s allowed, hehe. Not that I&#39;d have any experience stringing absolute paths together with the lib.</p><p>main.cpp
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/al_set_physfs_file_interface"><span class="a">al_set_physfs_file_interface</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>

    <span class="c">/* Set up PhysicsFS. */</span>
    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>PHYSFS_init<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">)</span> std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"failed initializing"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> std::endl<span class="k2">;</span>
    <span class="c">// This creates a ~/.allegro directory, which is very annoying to say the</span>
    <span class="c">// least - and no need for it in this example.</span>
    <span class="c">//  if (!PHYSFS_setSaneConfig("allegro", "ex_physfs", NULL, 0, 0))</span>
    <span class="c">//     return 1;</span>
    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>PHYSFS_addToSearchPath<span class="k2">(</span><span class="s">"data"</span>, <span class="n">1</span><span class="k2">)</span>
         <span class="k3">|</span><span class="k3">|</span> <span class="k3">!</span>PHYSFS_addToSearchPath<span class="k2">(</span><span class="s">"shaders"</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">)</span> std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"failed adding search path"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> std::endl<span class="k2">;</span>
    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>PHYSFS_mount<span class="k2">(</span><span class="s">"./"</span>, <span class="s">""</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">)</span> std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"failed mounting file path"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> std::endl<span class="k2">;</span>
</pre></div></div><p>


writer.cpp
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>Writer::Writer<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> filename<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>
<span class="number">  3</span>
<span class="number">  4</span>    <span class="c">//al_set_standard_file_interface();</span>
<span class="number">  5</span>
<span class="number">  6</span>    file <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_fopen"><span class="a">al_fopen</span></a><span class="k2">(</span>filename, <span class="s">"wb"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="k2">}</span>
<span class="number">  9</span>
<span class="number"> 10</span>
<span class="number"> 11</span>Writer::~Writer<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>
<span class="number"> 13</span>    <a href="http://www.allegro.cc/manual/al_fclose"><span class="a">al_fclose</span></a><span class="k2">(</span>file<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>    <span class="c">//al_set_physfs_file_interface();</span>
<span class="number"> 16</span>
<span class="number"> 17</span><span class="k2">}</span>
<span class="number"> 18</span>
<span class="number"> 19</span>
<span class="number"> 20</span><span class="k1">void</span> Writer::write_big3<span class="k2">(</span><span class="k1">int</span> dat<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 21</span>
<span class="number"> 22</span>    <a href="http://www.allegro.cc/manual/al_fputc"><span class="a">al_fputc</span></a><span class="k2">(</span>file, <span class="k2">(</span>dat<span class="k3">/</span><span class="k2">(</span><span class="n">256</span><span class="k3">*</span><span class="n">256</span><span class="k2">)</span><span class="k2">)</span>%<span class="n">256</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>    <a href="http://www.allegro.cc/manual/al_fputc"><span class="a">al_fputc</span></a><span class="k2">(</span>file, <span class="k2">(</span>dat<span class="k3">/</span><span class="n">256</span><span class="k2">)</span>%<span class="n">256</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>    <a href="http://www.allegro.cc/manual/al_fputc"><span class="a">al_fputc</span></a><span class="k2">(</span>file, dat%<span class="n">256</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</span><span class="k2">}</span>
</div></div><p>



</p><div class="source-code snippet"><div class="inner"><pre>Writer testwriter<span class="k2">(</span><span class="s">"sheep.txt"</span><span class="k2">)</span><span class="k2">;</span>
testwriter.write_big3<span class="k2">(</span><span class="n">70000</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//Crash</span>
</pre></div></div><p>


I get Assertion failed: f, file d:\Libraries\build\allegro\src\allegro-5.0.x\allegro-5.0.x\src\file.c, line 208</p><p>I realize it&#39;s an old Allegro build.</p><p>Thanks! <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SpectreNectar)</author>
		<pubDate>Thu, 29 Mar 2012 20:11:11 +0000</pubDate>
	</item>
</rss>
