Я создаю программу на C/C++, которая должна прочитать серию HD. Я знаю, что если я бегу эти команды:Как читать HD-сериал в Linux без привилегий root?
hdparm -i /dev/sda | grep -i serial
/sbin/udevadm info --query=property --name=sda | grep "ID_SERIAL"
я могу получить его, прежде всего, требует прав суперпользователя, но второй нет.
Однако мое приложение не может получить доступ к внешним программам и не может требовать привилегий от root, так же есть ли библиотека Linux C/C++, которая имеет функцию, которая возвращает серию HD? Или есть другой способ, который не требует запуска программы?
Помните, что '' hdparm' и udevadm' программы, как и большинство из любого другого ядра утилитами Linux, с открытым исходным кодом. Так почему бы просто не скачать источник им и проверить, что они делают? –
Мое предположение: вам нужно открыть '/ bin/sda' и использовать IOCTL для чтения серийного номера. –
Спасибо, конечно, вариант, хотя понять код и реплицировать его можно очень сложно, возможно, есть более простое решение. – Chicoscience