Форум программистов, компьютерный форум, киберфорум
Наши страницы
С под Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.97/30: Рейтинг темы: голосов - 30, средняя оценка - 4.97
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
1

Просмотр содержимого каталогов

24.03.2011, 17:00. Просмотров 5801. Ответов 12
Метки нет (Все метки)

Вообще нужно написать програмку для просмотра содержимого каталога. Имя каталога вводить с клавиатуры. Знаю что там нужно использовать opendir, readdir, closedir... Но как его все правильно организовать незнаю =\

Заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2011, 17:00
Ответы с готовыми решениями:

В родительском каталоге посчитать количество каталогов и вывести имена каталогов, используя суперблок
Здравствуйте! Собственно часть моего задания написано в шапке темы. Полностью же мое задание...

Просмотр содержимого каталогов, перемещение каталогов
И снова я,но может кто-нибудь, последний раз выручить меня с ассемблером ?:cry: Осталось сделать...

Перемещение и просмотр содержимого каталогов на диске
Написать на языке ассемблера программу для перемещения и просмотра содержимого каталогов на диске

Сравнение содержимого каталогов
В задаче сказано: "написать программу для сравнения содержимого каталогов" Подсказали что нужно...

Изменение содержимого каталогов
Задали написать командный сценарий shell но чтото не оч получаеться. Помогите кто может: Написать...

12
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 17:56 2
На WinAPI надо или как?
Не припомню в WinAPI таких функций.

Добавлено через 45 секунд
Это вообще с перла, кажется...
0
easybudda
Модератор
Эксперт CЭксперт С++
10209 / 6108 / 1536
Регистрация: 25.07.2009
Сообщений: 11,610
24.03.2011, 18:10 3
Цитата Сообщение от Deviaphan Посмотреть сообщение
Это вообще с перла, кажется...
Это в PERL оно из С пришло
man opendir
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 18:15 4
Есть подозрение, что не для никсов пишут.)
0
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
24.03.2011, 19:05  [ТС] 5
пишу в "gedit" Fedora
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 19:12 6
Тогда со своим ВинАПИ я умолкаю.)
0
easybudda
Модератор
Эксперт CЭксперт С++
10209 / 6108 / 1536
Регистрация: 25.07.2009
Сообщений: 11,610
24.03.2011, 19:26 7
Рома123, ну а с чем проблема-то? Вот так печатает директорию, из которой запущено
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
    
int main(void){
    DIR * dir;
    struct dirent * de;
    
    if ( ( dir = opendir(".") ) == NULL ){
        fprintf(stderr, "Forbidden, niht permission!\n");
        return 1;
    }
    
    while ( de = readdir(dir) )
        printf("%s\n", de->d_name);
    
    closedir(dir);
    return 0;
}
Придумайте, как какую-нибудь другую распечатать...
1
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
25.03.2011, 17:19  [ТС] 8
ну я только учусь.... Спасибо

Добавлено через 21 час 50 минут

А можете объяснить, что и как значит ? а то не все написанное понимаю
0
Nameless One
Эксперт С++
5789 / 3438 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
28.03.2011, 16:27 9
Цитата Сообщение от Рома123 Посмотреть сообщение
А можете объяснить, что и как значит ? а то не все написанное понимаю
Если что-то непонятно - напиши в консоли:
Код
man НАЗВАНИЕ_ТОГО_ЧТО_НЕПОНЯТНО
Название директории передается как аргумент программы.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <err.h>
#include <stdlib.h>
#include <errno.h>
 
int main(int argc, char* argv[])
{
    DIR* dir;
    struct dirent* de;
 
    if(argc == 1)
    errx(1, "Expected directory name\nUsage: %s DIRECTORY", *argv);
 
    else if(argc > 2)
    errx(1, "Extra arguments were specified\nUsage: %s DIRECTORY", *argv);
 
    if((dir = opendir(argv[1])) == NULL)
    err(1, "opendir: `%s'", argv[1]);
 
    printf("Printing contents of directory `%s'.\n", argv[1]);
    
    while((de = readdir(dir)) != NULL)
    printf("%s\n", de->d_name);
 
    if(errno == EBADF)
    err(1, "readdir: `%s'", argv[1]);
        
    if(closedir(dir) == -1)
    err(1, "closedir: `%s'", argv[1]);
    
    exit(0);
}
Пример:
Код
nameless@nameless-laptop:~/c-sample$ ./c-sample .
Printing contents of directory `.'.
Makefile
main.o
.
main.c
c-sample
..
nameless@nameless-laptop:~/c-sample$

Не по теме:

Функции печати ошибок, правда, нестандартные. Но легко реализуются

0
g_u_e_s_t
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
28.03.2011, 18:57 10
Еще вариант с обходом дерева ФС начиная с заданного пути(точнее путей).
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <sys/types.h>
#include <sys/stat.h>
#include <err.h>
#include <errno.h>
#include <fts.h>
#include <stdio.h>
 
int
main(int argc, char *argv[])
{
        FTS      *tree;
        FTSENT   *node;
        char     *curdir[] = {".", NULL};
        char    **paths;
 
        paths = argc > 1 ? argv + 1 : curdir;
 
        if ((tree = fts_open(paths, FTS_NOCHDIR, NULL)) == NULL)
                err(1, "fts_open");
 
        while ((node = fts_read(tree)))
                printf("%s\n", node->fts_path);
        if (errno)
                err(1, "fts_read");
 
        if (fts_close(tree))
                err(1, "fts_close");
 
        return (0);
}
1
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
06.04.2011, 20:39  [ТС] 11
С выше описанным вроде разобрался.....
Теперь программу нужно переделать так, чтобы она принимала параметром каталог, содержимое которого нужно вывести, если никакого параметра не указано - то пусть выводит содержимое текущего каталога....
0
Nameless One
Эксперт С++
5789 / 3438 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
07.04.2011, 15:56 12
Рома123, смотри мой пример, так есть почти все, что тебе нужно
1
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
08.04.2011, 00:02  [ТС] 13
Цитата Сообщение от Nameless One Посмотреть сообщение
Рома123, смотри мой пример, так есть почти все, что тебе нужно
окей, буду разбиратся, спасибо
0
08.04.2011, 00:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2011, 00:02

Перемещение содержимого из каталогов (tasm)
Добрый день. Задание следующее: создать программу для перемещения и просмотра содержимого...

Одновременное чтение содержимого каталогов в нескольких процессах
Здравствуйте! Каким образом можно осуществить выполнение поиска файлов в нескольких процессах...

Как копировать структуру каталогов без содержимого?
Как копировать структуру каталогов без содержимого? Н-р, копировать структуру диска С на другой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru