當你在OSX上安裝任何東西它顯示了在/ Volumes/mountname確定安裝的卷作爲CD/DVD上OSX
有什麼辦法,使用命令行或C/C++來標識卷作爲CD/DVD光盤?
我目前最好的辦法是這樣的。
df | grep mountname
得到的/ dev/diskNsM路徑
然後
drutil | grep /dev/diskN
以查看是否路徑安裝的裝置是燃燒器。
這工作,但我很擔心在CD/DVD是不是刻錄機的情況。它會在drutil的輸出中顯示嗎? Mac甚至會附帶非刻錄CD/DVD驅動器?
此外,我寧願使用C,C++或Objective C的做到這一點。
我已經使用
const char *tmp = '/Volumes/mysterydrive';
statfs(tmp, &m);
if(m.f_flags & MNT_RDONLY)
{
read_only = true;
}
,以確定是否卷是隻讀的, 但我不能看到,如果這或任何相關的呼叫可以在CD/DVD和只讀卷裝區分。
這將只需要爲OSX 10.5和更新工作。
任何想法?
編輯:
使用
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編程以後去做,但是這似乎是把它做的最快方式。