Проверьте, активен ли жесткий диск или нет в программе

Я хотел бы проверить, активен ли мой жесткий диск, и установить переменную или логическое значение для последующего использования в программе. У меня установлен hdparm и он работает должным образом, чтобы замедлить работу накопителя через заданный промежуток времени. Диск находится в /dev/sda2 и автоматически монтируется при загрузке.

Я читаю о popen() но я все еще не очень хорош с разбором выводов в c. Есть ли другой способ сделать это?

Также можно проверить, находится ли он в режиме ожидания.

1 ответ

Вы можете просто прочитать из "/sys/block/sda2/stat". Для документации см. https://www.kernel.org/doc/Documentation/block/stat.txt. Ваша программа должна работать так:

  1. Откройте "/ sys / block / sda2 / stat" с помощью fopen
  2. Используйте sscanf для анализа поля 3 (чтение секторов) и поля 7 (запись секторов).
  3. закрыть файл
  4. подожди несколько секунд
  5. Повторите шаги 1-3. Если вы получили разные номера, диск был активен в течение этого времени.
Другие вопросы по тегам