2009-10-28 81 views
2

我的程序从输入中读取如/dev/rdisk0的设备路径,然后在IOKit中查找BSD名称为disk0的磁盘。为此,我必须从路径中删除/dev/r有没有办法在Mac OS X中获取设备的BSD号码?

此路径的硬编码可能会在未来版本的Mac OS X中破解。因此,我通过另一种方式:我可以使用设备的BSD主版本和次版本匹配IOService

这是我的问题:是否有可能从路径中提取BSD小数和主数字?

回答

3

是的。使用stat系统调用。您正在寻找的struct stat的成员是st_dev,我相信这是一个稍有转变后的主要和次要的OR。

+0

This Works。 'dev_t'是一个32位整数,前8位是主要版本,其他24位是次要版本。如果'dev_t'改为64位整数,有没有办法让这个可移植? – 2009-10-28 23:32:31

+0

在我的OpenBSD机器上的,似乎有这样的宏major()和minor()。 – asveikau 2009-10-29 01:32:35

+0

@ asveikau:谢谢,找到他们。我可以发誓,当我寻找他们时,那些功能不在昨天。 – 2009-10-29 07:36:28

相关问题