Qt 5.12
Я пытаюсь получить идентификатор тома в macOS и использую следующую функцию:
QString getVolumeInfo()
{
QString volumeID = "Cannot find the volumeID";
QProcess p;
//diskutil info $(df -h / | tail -1 | cut -d' ' -f 1)
QString command = "diskutil";
QStringList args;
args << "info" << "$(df -h / | tail -1 | cut -d' ' -f 1)";
p.start(command, args);
p.waitForStarted();
p.waitForFinished();
foreach(QString line, QString(p.readAll()).split("\n"))
{
if(line.contains("Volume UUID:"))
volumeID = line;
}
return volumeID;
}
Мне нужно использовать diskutil из-за ограничения с macOS.Тем не менее, QProcess, считывающий объект, не содержит ничего.
Команда на терминале: информация о диске $ (df -h / | tail -1 | cut -d '' -f 1) который возвращает тонну информации, например:
...
SMART-статус: проверено
Том UUID: 954BACF1-EBC5-4D14-86FB-0912CF7F839C
UUID диска / раздела: 954BACF1-EBC5-4D14-86FB-0912CF7F839C
Размер диска: 500,1 ГБ (500068036608 байт) (ровно 976695384 512-байтовых единиц)
....
Когда я пытаюсь добавить qDebug () для отладки, я получаю следующее: true - "Не удалось найти диск: $ (df -h / | tail -1 | cut -d '' -f 1) \ n"
Похоже, аргументы не отформатированы или что-то в этом роде?
Я пытаюсь реализовать: https://apple.stackexchange.com/questions/50302/how-can-i-tell-which-volume-the-operating-system-is-on