The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Рекурсивный проход C/C++"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Рекурсивный проход C/C++" 
Сообщение от samara emailИскать по авторуВ закладки(??) on 04-Окт-05, 00:29  (MSK)
Приветствую! Вас!
Такой вопрос.
уже несколько раз останавливает меня одна проблема.
вообще-то очень хочется самому сообразить.
уж больно интересная задачка.

Как построена логика в РЕКУРСИВНОМ проходе по директориям ?

ведь на этом построены все программы ls grep find slocate и т. д.
или не все или я в чём-то заблуждаюсь

я знаком с вызовом ftw у меня даже получилось

1. используют ли программы ls grep find slocate и др.
   вызов ftw или у них свой алгоритм?
  
2. если у ls grep find slocate и др. свой алгоритм
   то как он выглядит.
  
3. Есть ли в QT что-то подобное ftw
   обычно C++ библиотеки от IDE очень умные
   пытался в QT найти что-то вроде( QFileDialog ).
   например говориш ей директорию а она сама возввращает
   файлы или директории в поддиректориях
   никак не мог найти ?

    или нужно самому мудрить?  
      

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Рекурсивный проход C/C++" 
Сообщение от sandy emailИскать по авторуВ закладки(??) on 04-Окт-05, 11:11  (MSK)
>Приветствую! Вас!
>Такой вопрос.
>уже несколько раз останавливает меня одна проблема.
>вообще-то очень хочется самому сообразить.
>уж больно интересная задачка.
>
>Как построена логика в РЕКУРСИВНОМ проходе по директориям ?
>
>ведь на этом построены все программы ls grep find slocate и т.
>д.
>или не все или я в чём-то заблуждаюсь
>
>я знаком с вызовом ftw у меня даже получилось
>
>1. используют ли программы ls grep find slocate и др.
>   вызов ftw или у них свой алгоритм?
>
>2. если у ls grep find slocate и др. свой алгоритм
>   то как он выглядит.
>
>3. Есть ли в QT что-то подобное ftw
>   обычно C++ библиотеки от IDE очень умные
>   пытался в QT найти что-то вроде( QFileDialog ).
>   например говориш ей директорию а она сама возввращает
>   файлы или директории в поддиректориях
>   никак не мог найти ?
>
>    или нужно самому мудрить?
>


Если у Вас FreeBSD, - поставьте сырцы и посмотрите исходники, например
/usr/src/bin/ls/*

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Рекурсивный проход C/C++" 
Сообщение от Дениска Искать по авторуВ закладки(??) on 04-Окт-05, 12:40  (MSK)
>>Приветствую! Вас!
>>Такой вопрос.
>>уже несколько раз останавливает меня одна проблема.
>>вообще-то очень хочется самому сообразить.
>>уж больно интересная задачка.
почему интересная? вроде как классическая, наверняка решается во всех ФС (древовидных) одинаково. т.е. функция берет список файлов из тек. каталога, и для каждого найденного каталога вызывает себя.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Рекурсивный проход C/C++" 
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 06-Окт-05, 20:36  (MSK)
>>>Приветствую! Вас!
>>>Такой вопрос.
>>>уже несколько раз останавливает меня одна проблема.
>>>вообще-то очень хочется самому сообразить.
>>>уж больно интересная задачка.
>почему интересная? вроде как классическая, наверняка решается во всех ФС (древовидных) одинаково.
>т.е. функция берет список файлов из тек. каталога, и для каждого
>найденного каталога вызывает себя.

И на практике эта функция оказывается офигенно непрактичной, от бешенного пожирания ресурсов до stack overflow при обходе реального 200Гб винта. Лучше уж итеративный подход, когда функция вызывается в цикле и после каждого своего выполнения сохраняет текущее состояние для последующих вызовов в какой-нть структуре...


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Рекурсивный проход C/C++" 
Сообщение от samara emailИскать по авторуВ закладки(ok) on 07-Окт-05, 00:27  (MSK)
>>>>Приветствую! Вас!
>>>>Такой вопрос.
>>>>уже несколько раз останавливает меня одна проблема.
>>>>вообще-то очень хочется самому сообразить.
>>>>уж больно интересная задачка.
>>почему интересная? вроде как классическая, наверняка решается во всех ФС (древовидных) одинаково.
>>т.е. функция берет список файлов из тек. каталога, и для каждого
>>найденного каталога вызывает себя.
>
>И на практике эта функция оказывается офигенно непрактичной, от бешенного пожирания ресурсов
>до stack overflow при обходе реального 200Гб винта. Лучше уж итеративный
>подход, когда функция вызывается в цикле и после каждого своего выполнения
>сохраняет текущее состояние для последующих вызовов в какой-нть структуре...

извините
о какой функции вы говорите
о ftw  или о другой

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Рекурсивный проход C/C++" 
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 07-Окт-05, 15:38  (MSK)
>>>>>Приветствую! Вас!
>>>>>Такой вопрос.
>>>>>уже несколько раз останавливает меня одна проблема.
>>>>>вообще-то очень хочется самому сообразить.
>>>>>уж больно интересная задачка.
>>>почему интересная? вроде как классическая, наверняка решается во всех ФС (древовидных) одинаково.
>>>т.е. функция берет список файлов из тек. каталога, и для каждого
>>>найденного каталога вызывает себя.
>>
>>И на практике эта функция оказывается офигенно непрактичной, от бешенного пожирания ресурсов
>>до stack overflow при обходе реального 200Гб винта. Лучше уж итеративный
>>подход, когда функция вызывается в цикле и после каждого своего выполнения
>>сохраняет текущее состояние для последующих вызовов в какой-нть структуре...
>
>извините
>о какой функции вы говорите
>о ftw  или о другой


Я говорю о любой рекурсивной функции, которая "берет список файлов из тек. каталога, и для каждого найденного каталога вызывает себя". Неограниченная рекурсия в любом случае зло для практического применения. Как на разных системах реализована ftw, я, к сожалению, не знаю, но хотелось бы верить, что с использованием итеративного подхода.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Рекурсивный проход C/C++" 
Сообщение от samara emailИскать по авторуВ закладки(??) on 05-Окт-05, 00:18  (MSK)
>>Приветствую! Вас!
>>Такой вопрос.
>>уже несколько раз останавливает меня одна проблема.
>>вообще-то очень хочется самому сообразить.
>>уж больно интересная задачка.
>>
>>Как построена логика в РЕКУРСИВНОМ проходе по директориям ?
>>
>>ведь на этом построены все программы ls grep find slocate и т.
>>д.
>>или не все или я в чём-то заблуждаюсь
>>
>>я знаком с вызовом ftw у меня даже получилось
>>
>>1. используют ли программы ls grep find slocate и др.
>>   вызов ftw или у них свой алгоритм?
>>
>>2. если у ls grep find slocate и др. свой алгоритм
>>   то как он выглядит.
>>
>>3. Есть ли в QT что-то подобное ftw
>>   обычно C++ библиотеки от IDE очень умные
>>   пытался в QT найти что-то вроде( QFileDialog ).
>>   например говориш ей директорию а она сама возввращает
>>   файлы или директории в поддиректориях
>>   никак не мог найти ?
>>
>>    или нужно самому мудрить?
>>
>
>
>Если у Вас FreeBSD, - поставьте сырцы и посмотрите исходники, например
>/usr/src/bin/ls/*

имеется и linux и freebsd исходники
я копался но нашел  
я подумал так: ведь это shell штучки
и поэтому как такового ls.c не существует
а сам код где-нибудь в общем исходнике
но я попробую ещё разок поискать
спасибо!

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Рекурсивный проход C/C++" 
Сообщение от qq Искать по авторуВ закладки(??) on 05-Окт-05, 08:26  (MSK)

>freebsd исходники
>как такового ls.c не существует

существует:
/usr/src/bin/ls/ls.c

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Рекурсивный проход C/C++" 
Сообщение от Дениска Искать по авторуВ закладки(??) on 05-Окт-05, 08:28  (MSK)
>имеется и linux и freebsd исходники
>я копался но нашел
>я подумал так: ведь это shell штучки
>и поэтому как такового ls.c не существует
с чего бы это быть "штучкам" shell? типа каждый писатель шелл организует ls по-своему??? в каждой свои ашипки и проч? это не unix-way. как это нет ls.c? бинарник есть, а исходника нету? нууу, вряд ли они его сразу в кодах набирают, посему воспользуемся той же find, про которую изначально был вопрос, и она нам скажет (для freebsd, например), что мол гляди в
/usr/src/bin/ls/ и найдешь там то, что ищешь.

вот только я не понял, как связана ls с вашим вопросом о рекурсивном хождении по дереву каталогов.

>а сам код где-нибудь в общем исходнике
>но я попробую ещё разок поискать
>спасибо!


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Рекурсивный проход C/C++" 
Сообщение от samara emailИскать по авторуВ закладки(ok) on 07-Окт-05, 00:41  (MSK)
>>имеется и linux и freebsd исходники
>>я копался но нашел
>>я подумал так: ведь это shell штучки
>>и поэтому как такового ls.c не существует
>с чего бы это быть "штучкам" shell? типа каждый писатель шелл организует
>ls по-своему??? в каждой свои ашипки и проч? это не unix-way.
>как это нет ls.c? бинарник есть, а исходника нету? нууу, вряд
>ли они его сразу в кодах набирают, посему воспользуемся той же
>find, про которую изначально был вопрос, и она нам скажет (для
>freebsd, например), что мол гляди в
>/usr/src/bin/ls/ и найдешь там то, что ищешь.
>
>вот только я не понял, как связана ls с вашим вопросом о
>рекурсивном хождении по дереву каталогов.
я не утверждаю о ls я предполагаю

>>а сам код где-нибудь в общем исходнике
>>но я попробую ещё разок поискать
>>спасибо!


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Рекурсивный проход C/C++" 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 05-Окт-05, 10:03  (MSK)
>имеется и linux и freebsd исходники

locate ls.c

>я копался но нашел
>я подумал так: ведь это shell штучки
>и поэтому как такового ls.c не существует
>а сам код где-нибудь в общем исходнике
>но я попробую ещё разок поискать
>спасибо!

http://www.freebsd.org/cgi/cvsweb.cgi/src/bin/ls/

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру