我注意到我从来没有完全弄清楚这一点。 Linux/dev/sd[a-z]
按照“发现”的顺序将 SATA 和 USB(以及许多其他类型)存储设备映射到设备文件。现在,假设您知道 CF 闪存卡通过 SATA 连接到计算机,您如何确定它获得了哪个设备文件?当然,您可以只看一下dmesg
,但是如果您想以编程方式执行此操作该怎么办?正在解析吗?这不是一个好的解决方案。内核必须提供一个 API 来解决这个问题,我想它应该很简单。但到目前为止我还没有找到它。
如今,Linux 将大量系统信息写入文件系统 ( sysfs
、procfs
、etc
),您可以在其中获取找出设备文件所需的信息。然而,这取决于编译时启用功能的天气。我正在寻找一个也可以在最小内核上运行的解决方案,而不需要所有花哨的 fs 东西。
答案1
您可以使用持久名称/dev/disk/
或使用 libudev API 与 udev 交互的更高级别软件。