【发布时间】:2013-03-27 05:35:09
【问题描述】:
我正在制作一个需要知道 CD 驱动器是打开还是关闭的应用程序。
eject 打开 CD 驱动器,检查需要多长时间才能打开(较短的时间表示已打开,较长的时间,嗯...),但我不能使用此技术,因为应用程序实际上打开驱动器(如果驱动器关闭,我不想重新打开驱动器,如果驱动器打开,我也不想关闭驱动器)。
我将如何在 linux 上执行此操作?我看到可以在 Windows 下执行此操作(虽然可能是错误的),但我还没有看到在 linux 上执行此操作的方法。
如果无法使用 linux API 调用,是否可以实现一个可以做到这一点的低级函数?
【问题讨论】:
-
我不确定这是否可行。我不相信IDE接口会暴露驱动器托盘的状态,但SATA可能会。另外,没有任何打开或关闭概念的插槽和球童驱动器呢?
-
@Dai,我想知道 linux 是如何检测 CD 何时放入驱动器的......如果我知道的话,也许这可以回答我的问题。
-
当介质发生变化时,驱动器会通知系统,但这与托盘的状态不同。
-
@Dai,哦...非常令人失望:/哦,好吧,我想我的问题已经解决了:(
-
必须有 ioctl() 控制打开/关闭行为,请检查 cd-drive 的驱动程序,以确定是否存在此类 ioctl,ps:我认为,这个问题更适合对于unix and linux