|
7 / 4 / 1
Регистрация: 03.05.2014
Сообщений: 82
|
|
Получить список жестких дисков14.01.2018, 19:15. Показов 6562. Ответов 5
Метки нет (Все метки)
Всем доброго времени суток. Прошу не кидаться в меня гнилыми овощами и нецензурной бранью, я только учусь 😁
Пишу программу, которая будет выполнять определенные действия с жестким диском (именно физическим устройством, а не монтированным, логическим диском), выбрав его из всех подключенных к машине по его серийному номеру. Информацию о том, как получить серийник нашел, а вот как получить список устройств нет... Возможно я что то назвал не своими словами, поправьте если что. Вобщем надо получить список имен устройств, к примеру: /dev/sda /dev/sdb /dev/sdc и т.д. Гугл/яндекс не помогли, нашел решения, но они какие уж слишком замудренные, мне кажется тут все проще. Какие варианты пришли мне в голову: 1) Я знаю что система обзывает устройства так, как я привел в примере выше, т.е. можно по сути просто подставляя буквы по алфавиту к "/dev/sd", проверять существует ли файл устройства, пока не узнаю послежнюю букву устройства. На сколько это вариант работоспособен? Не может ли получиться так, что файл существует, но устройства как бы и нету? Или может ли так случиться, что есть устройство с буквой a и есть с буквой c, а с буквой b нету? 2) При помощи команды ls можно получить список всех файлов устройств, но получить результат выполнения команды не так легко, как запустить ее из программы. Посоветуете что нибудь?
0
|
|
| 14.01.2018, 19:15 | |
|
Ответы с готовыми решениями:
5
Список жестких дисков
Получить информацию об оперативной памяти и информацию об одном из жёстких дисков |
|
|
|
| 14.01.2018, 20:36 | |
Сообщение было отмечено Kapo как решение
Решение
Здравствуйте!
Вы с каким дистрибутивом работаете? Мне кажется, что там не буквами нумерация идет, а цифрами. sda1, sda2 ... и т.д. Да, проверил у себя (Rosa Linux), так и есть. А по поводу того, как эти номера распределяются, то современные системы их динамически присваивают. При загрузке все устройства определяются и для каждого файл создается. Кажется так. Если не так, то пусть меня поправят.
1
|
|
|
7 / 4 / 1
Регистрация: 03.05.2014
Сообщений: 82
|
||||||
| 14.01.2018, 20:55 [ТС] | ||||||
|
Ubuntu 16.04
Забыл указать. Если я правильно понимаю, то буквами идет нумерация самого диска, т.е. устройства (так сказать непосредственно железка), а цифрами нумеруются его логические разделы. Т.е.: /dev - каталог, в котором лежать файлы эти sd - это система выберает по типу устройства, в зависимости от того, по которому оно подключено буквы a-z - номер устройства цифра - номер логического раздела Добавлено через 8 минут Тогда наверно мне подойдет мой первый вариант, надо только придумать как более "элегантно" перебирать файлы устройств. А то это sd меня пугает, боюсь что вдруг устройство начнет определяться по другому и уже будет не sd, а что то другое, хотя это наверно глупо. Нашел вот такую вот штуку. Тот диск, который разбит на 6 разделов, это как раз мой жесткий диск и после символа "->" указан файл, который ему соответствует. Но это не в имени файла находится, а наверно прописано в самом файле... Открыть его ни чем не могу, автоматический поиск тоже результатов не дал. Как понять чем его открыть?
0
|
||||||
|
|
|
| 14.01.2018, 22:21 | |
|
Про буквы. Там от типа устройства зависит. Кажется для SATA это буква a, для блочных устройств b, для символьных c. А цифра - номер раздела. Открыть файл не получается наверное потому, что для этого доступ суперпользователя (root) нужен. Если с его привилегиями программа будет работать (вопреки инстинкту самосохранения), то наверное все получиться. Может не библиотечными средствами (std::ifstrem), но системные вызовы (open() например) должны работать.
Но кажется проще по Вашему второму варианту действовать (может дольше и с большим количеством телодвижений). Можно в программе использовать функцию system() и перенаправлять вывод результатов выполнения команды в файл. Затем вся информация из файла уже извлекается обычным способом (парсинг) и можно использовать ее для своих целей. Так, по моему не надо получать права root (это безопасность).
1
|
|
|
7 / 4 / 1
Регистрация: 03.05.2014
Сообщений: 82
|
|||||||||||
| 16.01.2018, 21:19 [ТС] | |||||||||||
|
Нашел решение более близкое к первому варианту:
По поводу открытия этих файлов через su, ноль эмоций... Ну это не важно, потом как нибудь поизучаю, сейчас то уже нашел более подходящее решение Если у кого есть ссылочка на хорошую статью о QProcess, подкиньте пожалуйста Добавлено через 3 минуты Вот такой вод вывод у вышеуказанной команды, может кому пригодится. Там можно просто уйму параметров вывести (указывать можно либо по умолчанию - несколько основных, либо все - их просто туча , или же как у меня - перечислить необходимые
2
|
|||||||||||
|
|
|
| 17.01.2018, 00:07 | |
|
Kapo, спасибо за информацию.
0
|
|
| 17.01.2018, 00:07 | |
|
Помогаю со студенческими работами здесь
6
Как получить список дисков? Как получить список дисков на удаленном компьютере? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|