Quando si monta nulla su OSX si presenta sotto/Volumes/mountnameIdentificare un volume montato come un CD/DVD su osx
C'è un modo, utilizzando la riga di comando o C/C++ per identificare il volume come CD/DVD ROM?
La mia migliore idea attuale va più o meno così.
df | grep mountname
per ottenere il dev/diskNsM percorso/
e poi
drutil | grep /dev/diskN
per vedere se il percorso del dispositivo montato è il bruciatore.
Questo funziona, ma sono preoccupato per il caso in cui il CD/DVD non è un masterizzatore. Si presenterà ancora nell'output di drutil? I mac sono anche dotati di un'unità CD/DVD non masterizzatore?
Inoltre, preferirei usare C, C++ o l'obiettivo C per farlo.
Uso già
const char *tmp = '/Volumes/mysterydrive';
statfs(tmp, &m);
if(m.f_flags & MNT_RDONLY)
{
read_only = true;
}
per determinare se il volume è di sola lettura, ma non riesco a vedere se questo o qualsiasi chiamata correlato grado di distinguere tra un CD/DVD e un volume montato in sola lettura.
Dovrebbe funzionare solo per OSX 10.5 e successivi.
Qualche idea?
EDIT:
Utilizzando
diskutil info /Volumes/mysterydrive
ho ricevuto la seguente output se un 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
E questo è tutto quello che serve!
Guarderò utilizzando IOKit per farlo a livello di programmazione più tardi, ma questo sembra essere il modo più rapido per farlo.