Intereting Posts
Где я могу найти, где находится файл .htaccess и используется на сервере Mac OS X Lion, который устанавливает Basic Auth на сервере Apache? Изменение поведения имени хоста ZSH? Как подключить один сервер к другому защищенному паролем серверу без интерактивных? udev правила вождения меня орехи Почему изменение $ PATH влияет на дочерние оболочки, но с изменением $ foo нет? Список всех файлов, которые заканчиваются набором символов во всех подкаталогах, которые не заканчиваются набором символов Как установить синергию на RHEL5? Преобразовать в WAV, используя FFMPEG для трубы в LAME? В чем разница между ] и ? Определить шлюз и другую информацию без IP-адреса Невозможно установить Linux mint или загрузиться в live cd! : «Не найдена страница режима кэширования» Компиляция bzip1 на малине pi 2 с сервером debian? SELinux запрещает файлы записи httpd Как вы перечисляете все функции и псевдонимы в определенном скрипте? ssh из порта 80 в порт 22?

HDIO_GETGEO и HDIO_GET_IDENTITY в Linux с использованием C ++

Может ли кто-нибудь объяснить основную разницу между HDIO_GETGEO и HDIO_GET_IDENTITY ?

Из документации по Linux и этого документа под названием « Резюме вызовов HDIO_ ioctl». , Я знаю, что первое предназначено для «получения геометрии устройства», а второе – для получения информации идентификации IDE.

В общем документе HDIO говорится, что объект «struct hd_geometry» передается в качестве аргумента для вызова «ioctl», и он будет содержать «количество секторов».

Однако HDIO_GET_IDENTITY возвращает массив без знака. Но из этого вопроса SO я надеюсь, что struct hd_driveid содержит байты для сектора и другую информацию. И я где-то читал, что hd_driveid может быть передан как аргумент ioctl если в HDIO_GET_IDNTITY используется HDIO_GET_IDNTITY .

Мне нужно разъяснить все эти сомнения.

Кроме того, какой HDIO_ ioctl call следует использовать для получения количества секторов и байтов для каждого сектора моего жесткого диска в Linux?

GETGEO возвращает геометрию диска биоза, которая устарела. IDENTITY возвращает необработанный сектор идентификации устройства ATA. Вы не должны использовать ни один. Вместо этого просто прочитайте файлы / sys / block / sda / size и / sys / block / sda / queue / hw_sector_size. Первый дает размер в «секторах», как если бы размер сектора составлял 512 байт, даже если это не так, а последний дает размер реального сектора диска. Если вам нужен размер логического сектора, используйте logical_block_size.