|
7 / 4 / 1
Регистрация: 03.05.2014
Сообщений: 82
|
|
Получить список жестких дисков14.01.2018, 19:15. Показов 6553. Ответов 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
Как получить список дисков? Как получить список дисков на удаленном компьютере? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
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. Пошагово создадим проект для загрузки изображения. . .
|