0 / 0 / 0
Регистрация: 20.12.2013
Сообщений: 12

Подсчитать число блоков, занятых в текущем поддереве под следующие файлы: *.*, *.с, *.txt

23.04.2015, 16:24. Показов 2985. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите, пожалуйста, с задачей. Не знаю с чего начать. Дали методичку по данной лабораторной работе, но ничего толкового в ней не нашёл. Программа должна работать в Unix.
Подсчитать число блоков, занятых в текущем поддереве под следующие файлы: *.*, *.с, *.txt
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2015, 16:24
Ответы с готовыми решениями:

С на Unix. Посчитать размер файлов в текущем поддереве
//Подключаем необходимые библиотеки #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <dirent.h> #include...

Подсчитать число блоков, занимаемых каталогами, входящими в родительский каталог
Доброго времени суток! Есть задача: "Подсчитать число блоков, занимаемых каталогами, входящими в родительский каталог" Не могу...

Как найти файлы по шаблону в поддереве, не используя find?
Требуется создать программу на языке shell (без использования find), выполняющую поиск в заданном поддереве файловой структуры всех файлов,...

5
5 / 5 / 3
Регистрация: 20.10.2013
Сообщений: 68
23.04.2015, 16:51
Создаешь файл с расширением .c в UNIX системе (например joe редактором), пишешь туда прогу на языке С как обычно.
Затем компилируешь так: cc name.c
Появится файл a.out
Открываешь его ./a.out
В нем и вводится/выводится все.
0
0 / 0 / 0
Регистрация: 20.12.2013
Сообщений: 12
23.04.2015, 16:54  [ТС]
Спасибо, как компилировать я знаю. Представляю как сделать поиск нужных мне файлов, но ничего не смог найти, чтобы программа считала число блоков.
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
23.04.2015, 17:19
Цитата Сообщение от Анкуд Посмотреть сообщение
чтобы программа считала число блоков
читаем
Bash
1
man 2 stat
1
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
24.04.2015, 20:19
Вы не в одном институте учитесь? https://www.cyberforum.ru/c-li... ost7526469
0
0 / 0 / 0
Регистрация: 20.12.2013
Сообщений: 12
14.05.2015, 22:59  [ТС]
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 <stdlib.h>
#include <errno.h>
#include <dirent.h>
#include <sys/stat.h>
#include <string.h>
 
int main(void)
{
    int count = 0;
    DIR *d;
    struct dirent *entry;
    struct stat stbuf;
    // Получаем дескриптор текущей директории
    d = opendir("."); 
    //Получаем по очереди все элементы директории и проверяем их
    while ((entry = readdir(d)) != NULL)
    {
        //Если попалась запись начинающиеся на . или .. пропускаем ее
        if(!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
            continue;
        // Получаем атрибуты текущей записи
        stat(entry->d_name, &stbuf);
        //Проверяем является ли текущая запись папкой
        if(!((stbuf.st_mode & S_IFMT) == S_IFDIR)){
            count+= stbuf.st_size;
        }     
    }
     // Закрываем дескриптор
    printf("%d\n", count);
    closedir(d);
    return 0;
}
Вот что у меня получилось. То есть программа считает размер всех существующих файлов в домашнем каталоге. А нужно посчитать размер файлов в поддереве. Понимаю, что нужно осуществлять это через рекурсию, но в голову не приходят идеи как это сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.05.2015, 22:59
Помогаю со студенческими работами здесь

Вывести номера вершин, у которых количество потомков в левом поддереве не равно количеству потомков в правом поддереве
Помогите Граф отобразить, путь вывести. Если нет пути, вывести сообщение. Ввод матрицы должен осуществляться из файла и через...

Подсчитать число каталогов в родительском каталоге. Напечатать их имена и номера блоков, соответствующих файлам
Здравствуйте! У меня есть задание звучит так &quot;Подсчитать число каталогов в родительском каталоге. Напечатать их имена и номера блоков,...

Подсчитать количество занятых мест
Как подсчитать количество занятых мест? Имеется dbEdit1 в котором указана вместимость. dbEdit2 количество свободных мест. И dbEdit3 в...

Как в приложении Onedrive на смартфоне под Android поменять приложение, открывающее файлы *.txt?
Как в приложении Onedrive на смартфоне под Android поменять приложение, открывающее файлы *.txt? Файлы при открытии показывает...

Разбить входной файл, например: xatadu.txt на 2 выходные файлы:1.txt и 2.txt , записав в 1 нечетные байты, а в 2 четные
Разбить входной файл, например: xatadu.txt на 2 выходные файлы:1.txt и 2.txt , записав в 1 нечетные байты, а в 2 четные. И записать...


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

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

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru