Al montar nada en OSX que aparece bajo/Volumes/mountnameidentificar un volumen montado como un CD/DVD en OSX
¿Hay alguna manera, utilizando la línea de comandos o C/C++ para identificar el volumen como una CD/DVD rom?
Mi mejor idea actual es algo como esto.
df | grep mountname
para obtener el dev/diskNsM ruta/
y luego
drutil | grep /dev/diskN
para ver si la ruta del dispositivo montado es el quemador.
Esto funciona, pero me preocupa el caso en que el CD/DVD no es un quemador. ¿Seguirá apareciendo en la salida de drutil? ¿Las computadoras incluso vienen con una unidad de CD/DVD sin grabadora?
También preferiría usar C, C++ u objetivo C para hacer esto.
ya utilizo
const char *tmp = '/Volumes/mysterydrive';
statfs(tmp, &m);
if(m.f_flags & MNT_RDONLY)
{
read_only = true;
}
para determinar si el volumen es de sólo lectura, pero no puedo ver si este o cualquier llamada relacionada puede distinguir entre un CD/DVD y un volumen montado de sólo lectura.
Solo debería funcionar para OSX 10.5 y posterior.
¿Alguna idea?
EDIT:
Usando
diskutil info /Volumes/mysterydrive
me dieron el siguiente resultado si es 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
Y eso es todo lo que necesito!
Analizaré el uso de IOKit para hacerlo programáticamente más tarde, pero esta parece ser la forma más rápida de hacerlo.