<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>al_findfirst cannot &quot;see&quot; other users files on linux?</title>
		<link>http://www.allegro.cc/forums/view/477347</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 06 Apr 2005 07:17:30 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, I have this problem, my game searches for files using al_findfirst.<br />I&#39;m using Allegro WIP 4.18<br />Well, when the files are owned by the user that is running the game, all is fine.<br />Now, when the files are stored in /usr/share/games/kball/levels, the game cannot find them.</p><div class="source-code snippet"><div class="inner"><pre>ls <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball<span class="k3">/</span>levels
<span class="n">10</span>.map  <span class="n">14</span>.map  <span class="n">2</span>.map  <span class="n">5</span>.map  <span class="n">8</span>.map       easy.fmp
trainer.fmp
<span class="n">11</span>.map  <span class="n">15</span>.map  <span class="n">3</span>.map  <span class="n">6</span>.map  <span class="n">9</span>.map       hard.fmp
<span class="n">12</span>.map  <span class="n">1</span>.map   <span class="n">4</span>.map  <span class="n">7</span>.map  deluxe.fmp  medium.fmp
</pre></div></div><p>

This files have the permissions:<br /><s>rw-r--r</s>-    1 root root</p><p>To read the dir, I&#39;m doing
</p><div class="source-code snippet"><div class="inner"><pre> ret <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_findfirst" target="_blank"><span class="a">al_findfirst</span></a><span class="k2">(</span>path_str, <span class="k3">&amp;</span>dir_reader,<span class="k2">(</span>FA_RDONLY <span class="k3">|</span> FA_HIDDEN <span class="k3">|</span> FA_SYSTEM <span class="k3">|</span> FA_LABEL <span class="k3">|</span> FA_ARCH<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>

        <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>ret<span class="k2">)</span>
        <span class="k2">{</span>
                menu.add_item_to_menu<span class="k2">(</span>dir_reader.name<span class="k2">)</span><span class="k2">;</span>
                ret <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_findnext" target="_blank"><span class="a">al_findnext</span></a><span class="k2">(</span><span class="k3">&amp;</span>dir_reader<span class="k2">)</span><span class="k2">;</span>
        <span class="k2">}</span>

        <a href="http://www.allegro.cc/manual/al_findclose" target="_blank"><span class="a">al_findclose</span></a><span class="k2">(</span><span class="k3">&amp;</span>dir_reader<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

The path str and everything is set perfectly, in fact, if I change the owner of the same files in the same dir (/usr/blah) to the current user, the game will run perfectly. </p><p>So, I think that is a Allegro fault.</p><p>I need to store the things like that (in /usr/blah) to do the Debian package.<br />I&#39;m helping someone to do the packages for it.</p><p>So, well, how do I solve this ? (making al_findfirst find someone else owned files?)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kronoman)</author>
		<pubDate>Tue, 05 Apr 2005 13:28:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can you post a small testcase?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Tue, 05 Apr 2005 16:24:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>damn, with the test code, I can see the files. <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /><br />I don&#39;t know what is wrong... <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /></p><p>Test code:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;stdio.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">5</td><td><span class="k2">{</span></td></tr><tr><td class="number">6</td><td>  <span class="k1">struct</span> <a href="http://www.allegro.cc/manual/al_ffblk" target="_blank"><span class="a">al_ffblk</span></a> dir_reader<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>  <span class="k1">int</span> ret <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  </td></tr><tr><td class="number">9</td><td>  <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">10</td><td>    <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"starting\n\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td>  ret <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_findfirst" target="_blank"><span class="a">al_findfirst</span></a><span class="k2">(</span><span class="s">"/usr/share/games/kball/levels/*.map"</span>, <span class="k3">&amp;</span>dir_reader, <span class="k2">(</span>FA_RDONLY <span class="k3">|</span> FA_HIDDEN <span class="k3">|</span> FA_SYSTEM <span class="k3">|</span> FA_LABEL <span class="k3">|</span> FA_ARCH<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>ret<span class="k2">)</span></td></tr><tr><td class="number">17</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">18</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"file : %s\n"</span>, dir_reader.name<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    ret <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_findnext" target="_blank"><span class="a">al_findnext</span></a><span class="k2">(</span><span class="k3">&amp;</span>dir_reader<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td>  <a href="http://www.allegro.cc/manual/al_findclose" target="_blank"><span class="a">al_findclose</span></a><span class="k2">(</span><span class="k3">&amp;</span>dir_reader<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"\n\ndone\n\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td><span class="k2">}</span></td></tr><tr><td class="number">28</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

Test commands:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># <a href="http://www.delorie.com/djgpp/doc/libc/libc_570.html" target="_blank">mkdir</a> <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball    </td></tr><tr><td class="number">2</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># <a href="http://www.delorie.com/djgpp/doc/libc/libc_570.html" target="_blank">mkdir</a> <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball<span class="k3">/</span>levels</td></tr><tr><td class="number">3</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># echo <span class="k3">&gt;</span> <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball<span class="k3">/</span>levels<span class="k3">/</span><span class="n">1</span>.map</td></tr><tr><td class="number">4</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># echo <span class="k3">&gt;</span> <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball<span class="k3">/</span>levels<span class="k3">/</span><span class="n">2</span>.map</td></tr><tr><td class="number">5</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># echo <span class="k3">&gt;</span> <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball<span class="k3">/</span>levels<span class="k3">/</span><span class="n">3</span>.map</td></tr><tr><td class="number">6</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># echo <span class="k3">&gt;</span> <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball<span class="k3">/</span>levels<span class="k3">/</span><span class="n">4</span>.map</td></tr><tr><td class="number">7</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># echo <span class="k3">&gt;</span> <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball<span class="k3">/</span>levels<span class="k3">/</span><span class="n">5</span>.map</td></tr><tr><td class="number">8</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># ls <span class="k3">-</span>l <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>ga</td></tr><tr><td class="number">9</td><td>gal-2.0  games    </td></tr><tr><td class="number">10</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span># ls <span class="k3">-</span>l <span class="k3">/</span>usr<span class="k3">/</span>share<span class="k3">/</span>games<span class="k3">/</span>kball<span class="k3">/</span>levels<span class="k3">/</span></td></tr><tr><td class="number">11</td><td>total <span class="n">20</span></td></tr><tr><td class="number">12</td><td><span class="k3">-</span>rw-r--r--    <span class="n">1</span> root     root            <span class="n">1</span> abr  <span class="n">5</span> <span class="n">17</span><span class="k2">:</span><span class="n">11</span> <span class="n">1</span>.map</td></tr><tr><td class="number">13</td><td><span class="k3">-</span>rw-r--r--    <span class="n">1</span> root     root            <span class="n">1</span> abr  <span class="n">5</span> <span class="n">17</span><span class="k2">:</span><span class="n">11</span> <span class="n">2</span>.map</td></tr><tr><td class="number">14</td><td><span class="k3">-</span>rw-r--r--    <span class="n">1</span> root     root            <span class="n">1</span> abr  <span class="n">5</span> <span class="n">17</span><span class="k2">:</span><span class="n">11</span> <span class="n">3</span>.map</td></tr><tr><td class="number">15</td><td><span class="k3">-</span>rw-r--r--    <span class="n">1</span> root     root            <span class="n">1</span> abr  <span class="n">5</span> <span class="n">17</span><span class="k2">:</span><span class="n">11</span> <span class="n">4</span>.map</td></tr><tr><td class="number">16</td><td><span class="k3">-</span>rw-r--r--    <span class="n">1</span> root     root            <span class="n">1</span> abr  <span class="n">5</span> <span class="n">17</span><span class="k2">:</span><span class="n">11</span> <span class="n">5</span>.map</td></tr><tr><td class="number">17</td><td><span class="k2">[</span>root@localhost kronoman<span class="k2">]</span>#</td></tr></tbody></table></div></div><p>

</p><div class="source-code snippet"><div class="inner"><pre><span class="k2">[</span>kronoman@localhost kronoman<span class="k2">]</span>$ gcc test_alfindfirst.c <span class="k3">-</span>o test_alfindfirst.bin <span class="k3">-</span>Wall `allegro-config <span class="k3">-</span><span class="k3">-</span>libs`
<span class="k2">[</span>kronoman@localhost kronoman<span class="k2">]</span>$ .<span class="k3">/</span>test_alfindfirst.bin 
starting

file <span class="k2">:</span> <span class="n">1</span>.map
file <span class="k2">:</span> <span class="n">2</span>.map
file <span class="k2">:</span> <span class="n">3</span>.map
file <span class="k2">:</span> <span class="n">4</span>.map
file <span class="k2">:</span> <span class="n">5</span>.map


done

<span class="k2">[</span>kronoman@localhost kronoman<span class="k2">]</span>$
</pre></div></div><p>

well, I&#39;m clueless, my game uses almost the same code... but, when runs as normal user, I can&#39;t see the same files posted before.<br />I will recheck it again at night to see was wrong. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kronoman)</author>
		<pubDate>Wed, 06 Apr 2005 01:16:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are you sure the pattern your program is sending is right?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Wed, 06 Apr 2005 01:19:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The pattern that is sending is ok, I have a trace system that goes dumping all the stuff that happens, and I checked and is OK.<br />Anyways, I fooled around and I don&#39;t know how, but the problem solved for now... mysterious errors...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kronoman)</author>
		<pubDate>Wed, 06 Apr 2005 07:17:30 +0000</pubDate>
	</item>
</rss>
