Когда монтирование на OSX он показывает в/Volumes/mountnameОпределить смонтированный том, как CD/DVD на OSX
Есть ли способ, используя командную строку или C/C++, чтобы определить объем как CD/DVD rom?
Моя нынешняя лучшая идея идет примерно так.
df | grep mountname
, чтобы получить/Dev/diskNsM путь
, а затем
drutil | grep /dev/diskN
, чтобы увидеть, если путь установлен устройство горелки.
Это работает, но меня беспокоит случай, когда CD/DVD не является горелкой. Будет ли он отображаться на выходе drutil? У макинтошей даже есть компакт-диск с не-горелкой?
Также я бы предпочел использовать C, C++ или цель C для этого.
Я уже использую
const char *tmp = '/Volumes/mysterydrive';
statfs(tmp, &m);
if(m.f_flags & MNT_RDONLY)
{
read_only = true;
}
, чтобы определить, если объем чтения, , но я не могу видеть, если эта или родственный вызов может отличить CD/DVD и чтения установленного объема.
Этому нужно будет работать только для OSX 10.5 и новее.
Любые идеи?
EDIT:
Использование
diskutil info /Volumes/mysterydrive
я получил следующий вывод, если его CD/DVD
Optical Drive Type: CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-R, DVD-R DL, DVD-RW, DVD+R, DVD+R DL, DVD+RW
Optical Media Type: DVD-R
Optical Media Erasable: No
И это все, что мне нужно!
Я изучу использование IOKit, чтобы сделать это программно позже, но это, по-видимому, самый быстрый способ сделать это.