- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经完成了以下代码来测试 ioctl 的使用,但我对结果感到非常困惑。
int main(void)
{
int id;
dvd_struct s;
id=open("/dev/dvd",O_RDONLY);
ioctl(id,DVD_READ_STRUCT,&s);
printf("%d,%s,%s",s.bca.len,s.manufact.value,s.disckey.value);
close(id);
}
首先,在制造商和光盘 key 值中,会出现罕见的符号,但这不会那么重要,如果不是的话,因为每次我运行程序时都会出现一个新值,尽管总是将 DVD 保留在 DVD 播放器中。甚至 bca.len 在每次执行中都会有所不同,尽管它总是给出高于 32000 且低于 33000 的数字。
最后给出了是否有插入的 DVD 的结果,所以我想知道它到底从哪里得到这些结果,即使它正在读取 DVD。
DVD 正在被操作系统识别,因为 cat/dev/dvd 以良好的方式显示其内容。
有人可以解释为什么它会以这种方式工作吗?我是否可以使其正常工作(我的意思是,至少对于制造商和光盘 key 值获得相同的结果,并确保从插入的 DVD 中获取信息?
感谢您的关注。
最佳答案
检查ioctl
的返回值。如果失败,s
将不会填充信息。
if (ioctl(id, DVD_READ_STRUCT, &s) < 0)
{
perror("DVD_READ_STRUCT");
return -1;
}
RETURN VALUE
Usually, on success zero is returned. A few ioctl() requests use the
return value as an output parameter and return a nonnegative value on
success. On error, -1 is returned, and errno is set appropriately.
ERRORS
EBADF fd is not a valid descriptor.
EFAULT argp references an inaccessible memory area.
EINVAL request or argp is not valid.
ENOTTY fd is not associated with a character special device.
ENOTTY The specified request does not apply to the kind of object
that the descriptor fd references.
顺便说一句,总是检查非 void 函数的返回值。
关于c - ioctl 究竟是如何工作的以及如何使其在 DVD 读取时正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35945479/
我需要获得插入 DVD 磁盘的容量。 带有 IOCTL_DISK_GET_DRIVE_GEOMETRY_EX 参数的 DeviceIoControl 函数调用将 4128768 字节写入 DVD 的大
我的计算机科学类(class)教授希望将我们的 .java 刻录到 CD 上,并能够在 CD 上编译它。我尝试这样做,但是当我编译时,出现错误,指出它是只读文件系统。我正在使用 DVD+R。这是错误:
基本上我运行一个计算机网络,需要知道各种计算机的驱动器设置为什么区域代码。我不需要更改区域,但我不知道如何在不单独访问每台计算机并粘贴在光盘中的情况下确定区域。我尝试使用 Apple 的 cocoa
我下载了 centos 6.4 dvd 的 1 和 2 第一个是 4.4 GB 第二个是 1.4 GB 显然第二个也有 repo 文件。 所以安装它们然后将它们复制到2个文件夹。 home/a/rep
作为一名程序员,我不知道如何对 DVD 菜单进行编程,我听说这是可能的,甚至看到过使用 DVD 菜单的基本游戏 - 尽管它很可能是一个封闭系统。这是否可能?如果可能,有什么语言、编译器等可以实现这一点
我有 2 张 table : Item: Item Name, Format (D/B), Item_ID Rentals: Item_ID, date_borrowed, date_
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 8 个月前关闭。 Improve this ques
我想知道,是否有某种类型的光盘 ID 可以用来在我的数据库中搜索以查看该光盘是否已被扫描?所有光盘都是由我创建的,通常在 Windows 上刻录。 -编辑-我可以比较写入时间和卷标以查看光盘是否已被扫
我正在运行 v 4.2.6。 从今天早上开始,我无法导入一些虚拟机,并且我现有的一些虚拟机显示为无法访问,并在 UI 中显示以下错误, 当我将虚拟机带到另一台 PC 并尝试使用虚拟机(v 5.0.10
我有一个用汇编语言编写的第一阶段引导加载程序。我需要它从 DVD(或 CD)加载第二阶段引导加载程序。我只找到了从软盘或硬盘读取的示例。那里使用的中断是13h。在中断描述中,它说它可以读取软盘和硬盘。
我有一个简单的数据模型,如下所示。我正在为这些表创建微服务。创建微服务的最佳方法是什么?我需要为每个表创建一个微服务吗? database schema 最佳答案 微服务应该基于服务而不是基于表来创建
我正在尝试检测我们的应用程序是否正在从 DVD 运行(因为这会禁用/启用逻辑中的功能)。到目前为止,我已经想出了下面似乎有效的代码片段,但我真的很想知道是否有检测此问题的最佳实践。 publi
我用随机数据输入制作了下表,我试图显示特定年份中带有类别操作的所有数据。 | id_dvd | title | category | Years | ---
我已经创建了一个自定义分配器/演示器,可以很好地播放普通媒体文件。但是,当我使用以下代码尝试播放 DVD 时,它因堆栈溢出异常而失败。 vmr9_ap = new vmr9ap(); HMON
我在热门网站上做了很多研究,但我无法找到这种弹跳和飞行的动画。 Demo 我想在我的网页上添加飞行和弹跳水印。 最佳答案 您可以使用translate 函数开发弹跳和飞行效果 #circle{
我正在尝试使用 Primera 光盘复制器提供的 PTRobot API 进行交互。他们的 API 返回有关机器人中记录器驱动器的信息,但缺少的关键部分是驱动器号。 他们返回的信息是型号名称、固件和序
我有这些不同大小的目录 A、B、C..,我需要将它们刻录到 DVD 上。问题是我不想浪费任何空间。我想尽可能紧密地将这些目录打包到 DVD 中,而不考虑顺序。但是目录的内容当然不能乱动。 例如:DVD
在给定数百 GB 不同大小的 Assets 的情况下,填充一组蓝光光盘的最佳算法是什么? 我正在尝试整合大量的旧 CDROM、DVD 和小型硬盘驱动器,并将所有内容放入一个由 MD5 签名索引的数据库
所以我需要制作一个 Display 方法,按类别显示数组列表中的所有 DVD 对象。 这正是该方法应该做的: displayDVDsInCategory – 这个方法应该有一个类别作为参数。它应该返回
我有一个用 C# 编写的 DVD 读取和刻录应用程序。我希望能够检测空驱动器(无磁盘)和打开的驱动器之间的区别。 编辑:经过更多谷歌搜索后,我认为更好的问题描述是“我想访问驱动器托盘状态 - 打开或关
我是一名优秀的程序员,十分优秀!