|
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
|
|
В родительском каталоге посчитать количество каталогов и вывести имена каталогов, используя суперблок26.05.2015, 11:52. Показов 3345. Ответов 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
Вывести на экран в текущем каталоге имена тех каталогов, которые в себе не содержат подкаталогов Как вывести имена каталогов, в которых есть каталоги? Копирование всех каталогов с одним заданным именем из множества неизвестных каталогов Архивирование определённых файлов из разных каталогов с сохранением структуры этих каталогов Курсач горит,нужно организовать удаление каталогов и копирование каталогов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|