![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
Dogevec |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
Здравствуйте, подскажите пожалуйста, как определить на С++ количество жестких дисков(именно дисков, а не разделов!), на компе под управлением Mandrake( если конечно в данном случае ОС имеет значение )?
|
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
ОСЬ имеет значение, ибо название девайсов в разных системах разные.
Для линухи смотрим наличие /dev/hdX где X - a,b,c,d (это IDE шные винты) И /dev/sdX (вообще скайзевые винты, но флэшки тут же) где X - от английской a до английской p Ну и считаем соответственно... Это для дефолтного udev. Скорее всего у вас такой. Если нет, стоит уточнить как обзываются девайсы (смотрим конфиги udev) Добавлено @ 12:19 Может есть еще дисковые девайсы, но, сорри, я не в курсе... Это сообщение отредактировал(а) GrayCardinal - 14.3.2009, 12:21 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
GrayCardinal,
способ плохой ![]() правильно использовать /sys/block для этих целей пока единственное условие для проверки объектов из /sys/block на принадлежность к блочным устройствам (aka дискам), которое приходит на ум, чтение dev и сравнение major номера cо списком major номеров, уоторые могут соответствовать дисковым устройствам -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
[cut]
Добавлено через 1 минуту и 25 секунд ![]() Это сообщение отредактировал(а) GrayCardinal - 14.3.2009, 17:04 |
|||
|
||||
Dogevec |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
А есть ли разница в таблице MBR на IDE и SATA жёстких? Просто я нашёл способ сбора информации о диске, но в примере написано, что это для IDE.
Добавлено через 6 минут и 35 секунд
MAKCim, а как быть, если в этой операционке нет такого раздела /sys ?? |
|||
|
||||
leneCaress |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 12.12.2008 Где: Москва Репутация: нет Всего: 1 |
формат mbr не зависит от того на чем висит устройство: pata, sata или даже scsi.
но формат mbr далеко не один: только стандартных - около десятка. однако мне встречался только формат, который называют форматом msdos формат такой: 446 байт - программа загрузчик 4 по 16 байт - структуры описывающие 4 primary раздела 2 байта - сигнатура 0x55aa на память, кроме формата msdos могу назвать только один - gpt ( http://en.wikipedia.org/wiki/GUID_Partition_Table ) |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
тебе нужна информация о количестве дисков или о конкретном диске? ps. из MBR ты ничего кроме таблицы разделов не получишь даже размер не всегда сможешь определить -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
leneCaress |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 12.12.2008 Где: Москва Репутация: нет Всего: 1 |
да и в добавок жесткие диски могут быть за аппаратным рейд-массивом и количество устройств о которых знает ОС будет совсем не равно количеству реальных жестких дисков.
если не секрет, зачем нужен такой параметр? |
|||
|
||||
Dogevec |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
Да я программу пишу по мониторингу аппаратных составляющих компа, одно из заданий-это отпределение количества жёстких дисков, количества разделов на каждом жёстком и, соответственно, информация о свободном месте на них, фрагментированность данных на них+возможность их форматирования...
Хорошо, тогда такой вопрос, я уже реализовал определение перечня жёстких и разделов на них, а как получить инфу по их состоянию(свободное место на жёстком+фрагментированность информации на нём самом)? |
|||
|
||||
leneCaress |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 12.12.2008 Где: Москва Репутация: нет Всего: 1 |
команда df выводит свободное место для примонтированных фс - см исходники (пакет coreutils)
с фрагментацией - вопрос очень спорный... кабы сейчас стандартных способов нет, но гдето с пол года назад был бум обсуждений фрагментации никсовских ФС - были скрипты для оценки. --- а вообще, миль-пардон... но... один раздел может лежать на >1 жестких дисках и тогда вся постановка задачи летит к чертям. --- а вообще - таких программ очень много... и либо ты изобретаешь велосепед, либо пишешь задание для университета, что вероятнее. в любом случае - рекомендую посмотреть аналогичные системы, большой список которых можно найти здесь: http://www.opennet.ru/prog/sml/49.shtml |
|||
|
||||
Dogevec |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
Нет, это у меня по работе задали, но ты прав, я из-за малости знаний, изобретаю выелосипед, поэтому и пытаюсь тут узнать, чтобы не изобретать его
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
Dogevec,
смотри в сторону man 2 ioctl есть определенный набор IOCTL-команд для получения информации о блочных устройствах -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
leneCaress |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 12.12.2008 Где: Москва Репутация: нет Всего: 1 |
||||
|
||||
Dogevec |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
Прости, leneCaress, просто не задумавшись напечатал))
|
|||
|
||||
Dogevec |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 22.8.2008 Репутация: нет Всего: нет |
IOCTL хорошая функция, но я не могу в огромном перечне команд найти ту, что могла бы выдать информацию о свободном месте на харде, кто-нибдуь богат ссылочкой, где эти комманды на русском расписаны?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |