<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Си поиск файла в каталоге]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=24631</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=24631&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Си поиск файла в каталоге».]]></description>
		<lastBuildDate>Thu, 11 Oct 2012 13:53:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302663#p302663</link>
			<description><![CDATA[<div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p> А так извините меня я учится пытаюсь , с толку сбивать не надо. И так как человек по среди океана не знаю куда плыть</p></blockquote></div><p>Если бы вы хотели учиться то попытались понять, что не так в вашем коде, что его не сразу понимают.<br />Хороший код не тот который безглючно выполняет заданное, но и который логичен и понятен. </p><p>Сами подумайте. Условие входа из цикла нам полезно только один раз - если opendir ни чего не открыло нам. Т.е. если этот каталог существует, на протяжении работы этой программы результат этого условия всегда true. Т.е эта проверка совершенно бесполезна. Так сказать вечный цикл.</p><p>Так почему же не завязать условия цикла на возможность прочитать следующий файл в открытом каталоге?</p>]]></description>
			<author><![CDATA[null@example.com (voral)]]></author>
			<pubDate>Thu, 11 Oct 2012 13:53:48 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302663#p302663</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302651#p302651</link>
			<description><![CDATA[<p>Если научусь писать как Бьерн Страуструп , тогда может заболею. А так извините меня я учится пытаюсь , с толку сбивать не надо. И так как человек по среди океана не знаю куда плыть.</p>]]></description>
			<author><![CDATA[null@example.com (l_cho)]]></author>
			<pubDate>Thu, 11 Oct 2012 13:29:33 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302651#p302651</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302649#p302649</link>
			<description><![CDATA[<p>PS И ни чего, что на каждой итерации цикла компьютер будет производить одно лишнее сравнение....</p>]]></description>
			<author><![CDATA[null@example.com (voral)]]></author>
			<pubDate>Thu, 11 Oct 2012 13:27:26 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302649#p302649</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302642#p302642</link>
			<description><![CDATA[<div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p>Вы что-то имеете против while , я конечно знаю что прогеры против while , но вроде не плохо работает по такому условию</p></blockquote></div><p>Да ни чего я против не имею. Но использование его в данном, конкретном алгоритме считаю нецелесообразным. Как минимум сбивает с толку и заставляет вникать дольше в совершенно тривиальный алгоритм. </p><div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p>Читать внимательнее надо</p></blockquote></div><p>Писать грамотнее надо.</p><div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p>Я вообще не программист. А подобное смог бы прочесть.</p></blockquote></div><p>Главное, чтоб вы звездной болезнью не захворали от этого....</p>]]></description>
			<author><![CDATA[null@example.com (voral)]]></author>
			<pubDate>Thu, 11 Oct 2012 13:06:52 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302642#p302642</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302575#p302575</link>
			<description><![CDATA[<p>Читать внимательнее надо , а не выводы делать , основанные на невнимательности и собственной гордости . Я вообще не программист. А подобное смог бы прочесть.</p>]]></description>
			<author><![CDATA[null@example.com (l_cho)]]></author>
			<pubDate>Thu, 11 Oct 2012 10:57:37 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302575#p302575</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302567#p302567</link>
			<description><![CDATA[<p>Согласен такое возвращать нельзя <br /></p><div class="quotebox"><cite>voral пишет:</cite><blockquote><p>return printf (&quot;OPEN_ERROR\n&quot;);</p></blockquote></div><p> </p><p>Вы что-то имеете против while , я конечно знаю что прогеры против while , но вроде не плохо работает по такому условию <br /></p><div class="quotebox"><blockquote><p>Зачем &quot;while (dirp) {&quot; ?</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (l_cho)]]></author>
			<pubDate>Thu, 11 Oct 2012 10:42:41 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302567#p302567</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302565#p302565</link>
			<description><![CDATA[<div class="quotebox"><cite>voral пишет:</cite><blockquote><p>2. Фигово тестировали.  Если в каталоге будет много разных файлов, и нужный будет не первым. То ваш код его и не найдет.</p></blockquote></div><p>в том то и дело, что найдёт.... отформатирую код правильно и увидишь... меня эта спагетти-конструкция тоже с толку сбила&nbsp; <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Thu, 11 Oct 2012 10:41:14 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302565#p302565</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302553#p302553</link>
			<description><![CDATA[<p>Тоже &quot;веселая&quot; конструкция:<br /></p><div class="codebox"><pre><code>return printf (&quot;OPEN_ERROR\n&quot;); </code></pre></div><p>Понятно, что в таком мелком &quot;проекике&quot; не существенно.... Но потенциал для создания себе лишних граблей есть.</p>]]></description>
			<author><![CDATA[null@example.com (voral)]]></author>
			<pubDate>Thu, 11 Oct 2012 10:18:47 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302553#p302553</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302551#p302551</link>
			<description><![CDATA[<p>1 Зачем &quot;while (dirp) {&quot; ?<br />2. Фигово тестировали.&nbsp; Если в каталоге будет много разных файлов, и нужный будет не первым. То ваш код его и не найдет.</p><p>Таки стоило почитать букварь. Причем самый, что ни наесть, первый.<br />Книга &quot;Язык программирования Си&quot; Кернигана и Ритчи. <br />глава 8.6. &quot;Пример получения списка файлов в каталоге<br /></p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#include &lt;dirent.h&gt;
#include &lt;string.h&gt;
 
//~ #define NAME_MAX 256
 
int main(int argc, char **argv)
{
    DIR *dfd;
    struct dirent *dp;
    char filename[NAME_MAX];
 
    if ( argc &lt; 2 )
        strcpy(filename, &quot;.&quot;);
    else
        strcpy(filename, argv[1]);
 
    printf(&quot;%s\n\n&quot;, filename);
    dfd=opendir(filename);
 
    while( (dp=readdir(dfd)) != NULL )
            printf(&quot;%s\n&quot;, dp-&gt;d_name);
 
    closedir(dfd);
    return 0;
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (voral)]]></author>
			<pubDate>Thu, 11 Oct 2012 10:12:21 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302551#p302551</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302546#p302546</link>
			<description><![CDATA[<div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p>Работает ! Что ту может не работать ?</p></blockquote></div><p>нуда.... меня кривое форматирование сбило...</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Thu, 11 Oct 2012 09:56:19 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302546#p302546</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302542#p302542</link>
			<description><![CDATA[<p>Работает ! Что ту может не работать ? Я начал сразу С++ и Синтаксис только его знаком , так что могу предполагать и про С.<br />Прежде чем утверждать хотя бы проверил .</p>]]></description>
			<author><![CDATA[null@example.com (l_cho)]]></author>
			<pubDate>Thu, 11 Oct 2012 09:28:13 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302542#p302542</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302531#p302531</link>
			<description><![CDATA[<div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p>Накодил  если это можно так назвать</p></blockquote></div><p>не будет работать...<br />а без прочтения букваря на одном языке с вами сложно говорить....</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Thu, 11 Oct 2012 08:43:33 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302531#p302531</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302496#p302496</link>
			<description><![CDATA[<p>Букварь не читал , а вот strcmp помогло<br />Накодил&nbsp; если это можно так назвать</p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#include &lt;dirent.h&gt;
#include &lt;string.h&gt;

int main (int argc, char *argv []) {
        struct dirent *dp;
        DIR *dirp;
        const char *name;
        name = argv [1];
        dirp = opendir(&quot;/var/&quot;);
        while (dirp) {
                        if ((dp = readdir(dirp)) != NULL) { 
                        if (strcmp(dp-&gt;d_name, name)== 0) { 
                                closedir(dirp); 
                                printf (&quot;DIR\n&quot;);
                                return 0;
                               }
                         }else {
                                closedir(dirp); 
                                printf (&quot;NO_DIR\n&quot;);
                                return 1;
               }
             }
        return printf (&quot;OPEN_ERROR\n&quot;);
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (l_cho)]]></author>
			<pubDate>Thu, 11 Oct 2012 06:59:38 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302496#p302496</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302383#p302383</link>
			<description><![CDATA[<p>ОМГ. man 3 strcmp<br />а потом толстый букварь по Си.</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Wed, 10 Oct 2012 10:54:56 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302383#p302383</guid>
		</item>
		<item>
			<title><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=302382#p302382</link>
			<description><![CDATA[<p>ФИФЕКТЫ РЕЧИ у меня&nbsp; <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> <br /></p><div class="codebox"><pre><code>  if ((ent-&gt;d_name) == klon)    если ((перебор всех файлов и каталогов) == название файла )
тогда  файле есть</code></pre></div><p>Как задать с равнение &quot;название файла&quot; , я так понимаю он может сравнивать только с членом структуры ?</p>]]></description>
			<author><![CDATA[null@example.com (l_cho)]]></author>
			<pubDate>Wed, 10 Oct 2012 10:51:46 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=302382#p302382</guid>
		</item>
	</channel>
</rss>
