Khi bạn gắn kết bất cứ điều gì trên OSX nó xuất hiện dưới/Volumes/mountnameXác định một khối lượng lắp dưới dạng đĩa CD/DVD trên OSX
Có cách nào, bằng cách sử dụng dòng lệnh hoặc C/C++ để xác định khối lượng như một CD/DVD rom?
Ý tưởng hay nhất hiện tại của tôi giống như thế này.
df | grep mountname
để có được/dev/diskNsM đường
và sau đó
drutil | grep /dev/diskN
để xem nếu đường dần đến device gắn là burner.
Tác phẩm này, nhưng tôi lo ngại về trường hợp đĩa CD/DVD không phải là đầu ghi. Nó vẫn sẽ hiển thị trong đầu ra của drutil? Mac thậm chí có đi kèm với ổ CD/DVD không ghi đĩa không?
Ngoài ra tôi muốn sử dụng C, C++ hoặc C mục tiêu để thực hiện việc này.
tôi đã sử dụng
const char *tmp = '/Volumes/mysterydrive';
statfs(tmp, &m);
if(m.f_flags & MNT_RDONLY)
{
read_only = true;
}
để xác định nếu khối lượng là readonly, nhưng tôi không thể nhìn thấy nếu cuộc gọi liên quan này hoặc bất kỳ có thể phân biệt giữa một đĩa CD/DVD và một khối lượng readonly gắn kết.
Chỉ cần làm việc cho OSX 10.5 trở lên.
Bất kỳ ý tưởng nào?
EDIT:
Sử dụng
diskutil info /Volumes/mysterydrive
tôi đã cho kết quả sau nếu nó một đĩa 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
Và đó là tất cả tôi cần!
Tôi sẽ xem xét sử dụng IOKit để thực hiện chương trình sau, nhưng đây có vẻ là cách nhanh nhất để hoàn thành công việc.