gpt4 book ai didi

c++ - 我如何检测 CDRom 是否是 Linux 上的 DVD

转载 作者:IT王子 更新时间:2023-10-29 00:37:56 26 4
gpt4 key购买 nike

我正在寻找一个在 Linux 上运行的 C++ 中创建的函数,如果 CDRom 媒体是 DVD,则返回 true,如果是其他任何媒体(例如音频 CD),则返回 false。

我一直在使用 ioctllinux/cdrom.h。我尝试使用 DVD_READ_STRUCT 但它总是返回 true。也许我使用不当。

dvd_struct s
if (ioctl(hDEV, DVD_READ_STRUCT, &s)) {
return true;
}

最佳答案

/proc/sys/dev/cdrom/info ,它包含这样的东西:

CD-ROM information, Id: cdrom.c 3.20 2003/12/17

drive name: sr0
drive speed: 125
drive # of slots: 1
Can close tray: 1
Can open tray: 1
Can lock tray: 1
Can change speed: 1
Can select disk: 0
Can read multisession: 1
Can read MCN: 1
Reports media changed: 1
Can play audio: 1
Can write CD-R: 1
Can write CD-RW: 1
Can read DVD: 1
Can write DVD-R: 1
Can write DVD-RAM: 1
Can read MRW: 0
Can write MRW: 0
Can write RAM: 1

(它由内核更新并在所有发行版中可用)除了 ioctl 之外,您还可以使用此信息来自 cdrom.h .还要记住 cdrom.h是创建标准接口(interface)的尝试,它还不能满足所有制造商的需求,一些制造商仍在使用 SCSI 代码或其他一些专有方案。所以为了安全起见,您还应该至少使用 SCSI ioctl 检查一下代码-做#include <scsi/...让它们可用。

关于c++ - 我如何检测 CDRom 是否是 Linux 上的 DVD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57116113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com