|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|
В родительском каталоге посчитать количество каталогов и вывести имена каталогов, используя суперблок26.05.2015, 11:52. Показов 3397. Ответов 12
Метки нет (Все метки)
Здравствуйте!
Собственно часть моего задания написано в шапке темы. Полностью же мое задание звучит так: В родительском каталоге подсчитать количество каталогов, вывести их имена и номера блоков. В задании меня смущает фраза, в которой говорится о работе с супер блоком для выполнения этого задания. Нашел несколько тем, которые максимально похожи на то, что нужно сделать мне, но не вижу связи с супер блоками: https://www.cyberforum.ru/c-li... 13663.html https://www.cyberforum.ru/c-li... 95986.html https://www.cyberforum.ru/c-li... ost7526469 В книге "Операционные системы unix и программирование на Си" описана несколько другая структура супер блока. Собственно мой вопрос: в каком направлении, так сказать, идти, чтобы решить эту задачу. Что лучше почитать об этом? Или те ссылки, которые я нашел, и есть решение моей задачи? Заранее спасибо за помощь!
0
|
|
| 26.05.2015, 11:52 | |
|
Ответы с готовыми решениями:
12
Подсчитать число каталогов в родительском каталоге, затем напечатать их имена и номера индексных дескрипторов Подсчитать число каталогов в родительском каталоге. Напечатать их имена и номера блоков, соответствующих файлам Вывести на экран в текущем каталоге имена тех каталогов, которые в себе не содержат подкаталогов |
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|
| 26.05.2015, 15:27 [ТС] | |
|
drfaust, вот именно это я обнаружил после прочтения соответствующей главы в книге. Теперь я вообще не вижу связи суперблока и информации о каталогах. Он ведь содержит информацию о свободных блоках помимо еще какой-то служебной информации.
Может все-таки есть какая-то связь суперблока и задания?
0
|
|
| 26.05.2015, 15:34 | |
Сообщение было отмечено Gr1f0nn как решение
Решение
LinuxKernelDevelopment на русском, читать "глава 12" Экземпляр древний, структуры могут отличаться.
Может препод имел ввиду работу с inode и структурой каталогов. В суперблоке есть только ссылка на точку монтирования данной ФС.
1
|
|
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|
| 26.05.2015, 15:56 [ТС] | |
|
drfaust, спасибо огромное за книгу! Вполне возможно, что это и имелось в виду. во всяком случае это уже больше похоже на правду.
Единственное, у меня остался один вопрос: нужны ли какие-то особые права пользователя для того, чтобы можно было считывать данные из этих структур? Как мне кажется, то нет, но пепдаватель сказал, что нужны. Так ли это?
0
|
|
| 26.05.2015, 21:13 | |
|
Если работать с /dev/sdX то да, права нужны, если работать только с родительским каталогом и ниже - то права самого каталога (если это / то права нужны, если это к-то тестовый каталог в хомяке и всё что в нём принадлежит юзеру, то нет). В общем случае права рута на запуск проги (suid бит например и т.п.)
1
|
|
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|
| 26.05.2015, 23:12 [ТС] | |
|
drfaust, Ага, теперь понял, о чем он говорил.
Еще раз спасибо!
0
|
|
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|||||||||||
| 28.05.2015, 14:26 [ТС] | |||||||||||
|
Снова здравствуйте!
В прошлой теме я задал вопрос : https://www.cyberforum.ru/c-li... 58504.html Теперь возник другой вопрос: правильно ли я сделал? ![]() Суть в том, что по тому, как объявлена структура stat, то она больше похожа как раз-таки на inode. В этой структуре должен быть указатель на структуру суперблока. В книгах, да и в гугле пишут, что нужно подключить sys/filsys.h или linux/fs.h . Ни тот, ни другой инклюд не помогает. Вполне возможно, что то, что написано, уже отвечает поставленной задаче (лично меня уже все устраивает ^_^), но мне как-то надо получить еще суперблок, который связан с этими каталогами. Так как я проверяю это в своем подкаталоге, в котором еще куча каталогов, то, как я понимаю, суперблок будет для них один и тот же, но не уверен в этом. Теперь, собственно, суть вопроса кратко: правильно ли я сделал и, если нет, то как мне получить доступ к структуре суперблока через структуру inode (она же stat(???) здесь)? Я unix подобные ОС (надеюсь, что правильно написал), откровенно говоря, никогда не использовал, поэтому опыта работы в них нет.
Добавлено через 1 минуту Да, забыл написать, что работаю в FreeBSD 10.0 Добавлено через 12 часов 44 минуты Немного перефразирую вопрос: правильно ли я понял, что структура stat в данном случае и есть структура inode и как мне из этой структуры вытащить указатель на структуру суперблока? К сожалению, структура суперблока имеет неизвестное мне название и вариант
0
|
|||||||||||
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|
| 30.05.2015, 14:20 [ТС] | |
|
Нашел структуру суперблока конкретно для freebsd 10.1
https://www.freebsd.org/cgi/ma... ormat=html Но все равно никак не могу понять, как же мне получить информацию из нее. Какую нужно вызвать функцию, чтобы я мог потом прочитать ту информацию, которая мне нужна? Для конкретного родительского каталога. По идее я должен как-то сначала получить структуру inode, а оттуда получить указатель на нужный мне суперблок. Тогда, как получить эту структуру с нужной мне информацией? И, как я понял, я ошибочно думал, что структура stat - это нечто похожее на inode. Буду благодарен за любую помощь!
0
|
|
| 31.05.2015, 19:08 | |
|
Если не изменяет склероз место(и места его возможных копий) суперблока и его содержимое (или отсутствие как такового как в FAT) в ФС зависит от типа ФС. Для фряхи надо ковырять UFS/ZFS, т.к FFS давно погибла. Где именно на диске он находится - не подскажу, с файловыми системами юникс-лайк я тесно не работал, но подозреваю, что получить к нему доступ надо работать с /dev/sd*.
1
|
|
|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
||||||
| 01.06.2015, 17:31 [ТС] | ||||||
|
drfaust, Да вроде нашел, в каком заголовочном файле находится структура блока, но теперь нужно понять, как сначала получить доступ к inode структуре , а потом оттуда вытащить указатель на суперблок и произвести нужные с ним операции.
Еще раз перечитал ссылку (точнее содержимое страницы ^_^), которую я скинул выше, и вроде как понял, что и где искать (в каких заголовочных файлах), но вот остался вопрос: допустим я объявил переменную типа inode. Как мне считать в эту структуру нужную мне информацию конкретного каталога? Добавлено через 1 минуту Еще раз перечитал главу в книге, которую вы мне подсказали, и увидел, что мне нужно для этого подняться на уровень "вверх". то есть сначала считать структуру dentry, затем оттуда вытащить указатель на inode, а затем уже вытащить указатель на структуру суперблока. Осталось только понять, как считать структуру dentry >< Добавлено через 19 часов 38 минут В общем, еще раз (третий) перечитал главу. Осознал следующее: Структура file имеет в себе указатель на структуру dentry. Структура dentry имеет в себе указатель на структуру суперблока. Все бы ничего, но не могу найти, какой заголовочный файл надо подключить, чтобы использовать структуру dentry. С суперблоком вроде все понятно стало. Это
Не по теме: P.S.
0
|
||||||
|
0 / 0 / 0
Регистрация: 28.04.2016
Сообщений: 2
|
|
| 28.04.2016, 11:44 | |
|
Ребят, дали такое же задание в вузе, как и в заголовке. Сделал сначала просто через opendir. Сказали, что слишком высокоуровнево. Сделал с помощью getdents. Снова не то.
Затем специально уточнили, что нужно использовать именно суперблок. Уже и поисковик мучал, пытаясь как-то связать супеблок и вывод структуры директории, и какие-то древние книжки по unix, рекомендованные преподавателем нашел-полистал. Толком ничего нет. Максимум - что такое суперблок. Если у кого-то есть информация по теме или кто-то что-то подобное делал - поделитесь информацией, пожалуйста.
0
|
|
|
0 / 0 / 0
Регистрация: 28.04.2016
Сообщений: 2
|
|
| 20.05.2016, 02:41 | |
|
Просмотрел несколько книг разной степени давности, поискал на английском - ниаких успехов.
0
|
|
| 20.05.2016, 02:41 | |
|
Помогаю со студенческими работами здесь
13
Вывести на экран в текущем каталоге имена тех каталогов, которые в себе не содержат подкаталогов Как вывести имена каталогов, в которых есть каталоги? Копирование всех каталогов с одним заданным именем из множества неизвестных каталогов Архивирование определённых файлов из разных каталогов с сохранением структуры этих каталогов Курсач горит,нужно организовать удаление каталогов и копирование каталогов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|