Модераторы: xvr

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение количества жестких дисков, Количество жёстких дисков 
:(
    Опции темы
Dogevec
Дата 13.3.2009, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



Здравствуйте, подскажите пожалуйста, как определить на С++ количество жестких дисков(именно дисков, а не разделов!), на компе под управлением Mandrake( если конечно в данном случае ОС имеет значение )? 
PM MAIL   Вверх
GrayCardinal
Дата 14.3.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 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


--------------------
PM MAIL WWW   Вверх
MAKCim
Дата 14.3.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



GrayCardinal
способ плохой  smile и зависит от udev в общем случае
правильно использовать /sys/block для этих целей
пока единственное условие для проверки объектов из /sys/block на принадлежность к блочным устройствам (aka дискам), которое приходит на ум, чтение dev и сравнение major номера cо списком major номеров, уоторые могут соответствовать дисковым устройствам 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
GrayCardinal
Дата 14.3.2009, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



[cut]

Добавлено через 1 минуту и 25 секунд
 smile 

Это сообщение отредактировал(а) GrayCardinal - 14.3.2009, 17:04


--------------------
PM MAIL WWW   Вверх
Dogevec
Дата 15.3.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



А есть ли разница в таблице MBR на IDE и SATA жёстких? Просто я нашёл способ сбора информации о диске, но в примере написано, что это для IDE.

Добавлено через 6 минут и 35 секунд
Цитата

правильно использовать /sys/block для этих целей

MAKCim, а как быть, если в этой операционке нет такого раздела /sys ??
PM MAIL   Вверх
leneCaress
Дата 15.3.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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 )
PM MAIL   Вверх
MAKCim
Дата 15.3.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата(Dogevec @  15.3.2009,  19:53 Найти цитируемый пост)
Просто я нашёл способ сбора информации о диске

тебе нужна информация о количестве дисков или о конкретном диске?

ps. из MBR ты ничего кроме таблицы разделов не получишь
даже размер не всегда сможешь определить


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
leneCaress
Дата 15.3.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 12.12.2008
Где: Москва

Репутация: нет
Всего: 1



да и в добавок жесткие диски могут быть за аппаратным рейд-массивом и количество устройств о которых знает ОС будет совсем не равно количеству реальных жестких дисков.

если не секрет, зачем нужен такой параметр?
PM MAIL   Вверх
Dogevec
Дата 16.3.2009, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



Да я программу пишу по мониторингу аппаратных составляющих компа, одно из заданий-это отпределение количества жёстких дисков, количества разделов на каждом жёстком и, соответственно, информация о свободном месте на них, фрагментированность данных на них+возможность их форматирования...
Хорошо, тогда такой вопрос, я уже реализовал определение перечня жёстких и разделов на них, а как получить инфу по их состоянию(свободное место на жёстком+фрагментированность информации на нём самом)?
PM MAIL   Вверх
leneCaress
Дата 17.3.2009, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 12.12.2008
Где: Москва

Репутация: нет
Всего: 1



команда df выводит свободное место для примонтированных фс - см исходники (пакет coreutils)

с фрагментацией - вопрос очень спорный... кабы сейчас стандартных способов нет, но гдето с пол года назад был бум обсуждений фрагментации никсовских ФС - были скрипты для оценки.

---

а вообще, миль-пардон... но...
один раздел может лежать на >1 жестких дисках

и тогда вся постановка задачи летит к чертям.

---

а вообще - таких программ очень много...
и либо ты изобретаешь велосепед, либо пишешь задание для университета, что вероятнее.

в любом случае - рекомендую посмотреть аналогичные системы, большой список которых можно найти здесь:
http://www.opennet.ru/prog/sml/49.shtml
PM MAIL   Вверх
Dogevec
Дата 17.3.2009, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



Нет, это у меня по работе задали, но ты прав, я из-за малости знаний, изобретаю выелосипед, поэтому и пытаюсь тут узнать, чтобы не изобретать его 
PM MAIL   Вверх
MAKCim
Дата 17.3.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Dogevec
смотри в сторону man 2 ioctl
есть определенный набор IOCTL-команд для получения информации о блочных устройствах


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
leneCaress
Дата 17.3.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 12.12.2008
Где: Москва

Репутация: нет
Всего: 1



Цитата(Dogevec @  17.3.2009,  10:09 Найти цитируемый пост)
но ты прав


ну только я женского рода  smile 
PM MAIL   Вверх
Dogevec
Дата 17.3.2009, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



Прости, leneCaress, просто не задумавшись напечатал))


PM MAIL   Вверх
Dogevec
Дата 17.3.2009, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



IOCTL хорошая функция, но я не могу в огромном перечне команд найти ту, что могла бы выдать информацию о свободном месте на харде, кто-нибдуь богат ссылочкой, где эти комманды на русском расписаны?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0910 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.