Проверьте, активен ли жесткий диск или нет в программе
Я хотел бы проверить, активен ли мой жесткий диск, и установить переменную или логическое значение для последующего использования в программе. У меня установлен hdparm и он работает должным образом, чтобы замедлить работу накопителя через заданный промежуток времени. Диск находится в /dev/sda2 и автоматически монтируется при загрузке.
Я читаю о popen()
но я все еще не очень хорош с разбором выводов в c. Есть ли другой способ сделать это?
Также можно проверить, находится ли он в режиме ожидания.
1 ответ
Вы можете просто прочитать из "/sys/block/sda2/stat". Для документации см. https://www.kernel.org/doc/Documentation/block/stat.txt. Ваша программа должна работать так:
- Откройте "/ sys / block / sda2 / stat" с помощью fopen
- Используйте sscanf для анализа поля 3 (чтение секторов) и поля 7 (запись секторов).
- закрыть файл
- подожди несколько секунд
- Повторите шаги 1-3. Если вы получили разные номера, диск был активен в течение этого времени.