【问题标题】:Is there a way to get the BSD number of a device in Mac OS X?有没有办法在 Mac OS X 中获取设备的 BSD 编号?
【发布时间】:2010-12-11 01:36:26
【问题描述】:

我的程序从输入中读取像/dev/rdisk0 这样的设备路径,然后在IOKit 中查找BSD 名称为disk0 的磁盘。为此,我必须从路径中删除 /dev/r

在未来的 Mac OS X 版本中,硬编码这条路径可能会中断。因此我想到了另一种方法:我可以使用设备的 BSD 主要和次要版本匹配 IOService

这是我的问题:是否可以从路径中提取 BSD 次要编号和主要编号?

【问题讨论】:

    标签: macos bsd device


    【解决方案1】:

    是的。使用@987654321@ 系统调用。您要查找的struct stat 的成员是st_dev,我认为这是移位后的主要和次要的或。

    【讨论】:

    • 这行得通。 dev_t 是一个 32 位整数,前 8 位是主要版本,其他 24 位是次要版本。如果 dev_t 更改为 64 位整数,有没有办法使这个可移植?
    • 在我的 OpenBSD 机器上的 中,似乎有用于此的宏 major() 和 minor()。
    • @asveikau:谢谢,找到了。我可以发誓,昨天我在寻找这些功能时并不存在。
    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 2011-03-27
    • 2010-09-27
    • 1970-01-01
    • 2011-01-30
    • 2015-03-20
    • 2012-02-21
    • 1970-01-01
    相关资源
    最近更新 更多