<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Си поиск файла в каталоге]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=24631&amp;type=atom" />
	<updated>2012-10-11T13:53:48Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=24631</id>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302663#p302663" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p> А так извините меня я учится пытаюсь , с толку сбивать не надо. И так как человек по среди океана не знаю куда плыть</p></blockquote></div><p>Если бы вы хотели учиться то попытались понять, что не так в вашем коде, что его не сразу понимают.<br />Хороший код не тот который безглючно выполняет заданное, но и который логичен и понятен. </p><p>Сами подумайте. Условие входа из цикла нам полезно только один раз - если opendir ни чего не открыло нам. Т.е. если этот каталог существует, на протяжении работы этой программы результат этого условия всегда true. Т.е эта проверка совершенно бесполезна. Так сказать вечный цикл.</p><p>Так почему же не завязать условия цикла на возможность прочитать следующий файл в открытом каталоге?</p>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2012-10-11T13:53:48Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302663#p302663</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302651#p302651" />
			<content type="html"><![CDATA[<p>Если научусь писать как Бьерн Страуструп , тогда может заболею. А так извините меня я учится пытаюсь , с толку сбивать не надо. И так как человек по среди океана не знаю куда плыть.</p>]]></content>
			<author>
				<name><![CDATA[l_cho]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23173</uri>
			</author>
			<updated>2012-10-11T13:29:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302651#p302651</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302649#p302649" />
			<content type="html"><![CDATA[<p>PS И ни чего, что на каждой итерации цикла компьютер будет производить одно лишнее сравнение....</p>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2012-10-11T13:27:26Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302649#p302649</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302642#p302642" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2012-10-11T13:06:52Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302642#p302642</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302575#p302575" />
			<content type="html"><![CDATA[<p>Читать внимательнее надо , а не выводы делать , основанные на невнимательности и собственной гордости . Я вообще не программист. А подобное смог бы прочесть.</p>]]></content>
			<author>
				<name><![CDATA[l_cho]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23173</uri>
			</author>
			<updated>2012-10-11T10:57:37Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302575#p302575</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302567#p302567" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[l_cho]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23173</uri>
			</author>
			<updated>2012-10-11T10:42:41Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302567#p302567</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302565#p302565" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Fat-Zer]]></name>
				<uri>https://linuxforum.ru/profile.php?id=11911</uri>
			</author>
			<updated>2012-10-11T10:41:14Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302565#p302565</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302553#p302553" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2012-10-11T10:18:47Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302553#p302553</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302551#p302551" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2012-10-11T10:12:21Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302551#p302551</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302546#p302546" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p>Работает ! Что ту может не работать ?</p></blockquote></div><p>нуда.... меня кривое форматирование сбило...</p>]]></content>
			<author>
				<name><![CDATA[Fat-Zer]]></name>
				<uri>https://linuxforum.ru/profile.php?id=11911</uri>
			</author>
			<updated>2012-10-11T09:56:19Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302546#p302546</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302542#p302542" />
			<content type="html"><![CDATA[<p>Работает ! Что ту может не работать ? Я начал сразу С++ и Синтаксис только его знаком , так что могу предполагать и про С.<br />Прежде чем утверждать хотя бы проверил .</p>]]></content>
			<author>
				<name><![CDATA[l_cho]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23173</uri>
			</author>
			<updated>2012-10-11T09:28:13Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302542#p302542</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302531#p302531" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>l_cho пишет:</cite><blockquote><p>Накодил  если это можно так назвать</p></blockquote></div><p>не будет работать...<br />а без прочтения букваря на одном языке с вами сложно говорить....</p>]]></content>
			<author>
				<name><![CDATA[Fat-Zer]]></name>
				<uri>https://linuxforum.ru/profile.php?id=11911</uri>
			</author>
			<updated>2012-10-11T08:43:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302531#p302531</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302496#p302496" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[l_cho]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23173</uri>
			</author>
			<updated>2012-10-11T06:59:38Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302496#p302496</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302383#p302383" />
			<content type="html"><![CDATA[<p>ОМГ. man 3 strcmp<br />а потом толстый букварь по Си.</p>]]></content>
			<author>
				<name><![CDATA[Fat-Zer]]></name>
				<uri>https://linuxforum.ru/profile.php?id=11911</uri>
			</author>
			<updated>2012-10-10T10:54:56Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302383#p302383</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Си поиск файла в каталоге]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=302382#p302382" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[l_cho]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23173</uri>
			</author>
			<updated>2012-10-10T10:51:46Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=302382#p302382</id>
		</entry>
</feed>
