日期:2014-05-16  浏览次数:20876 次

通过设备名,获取接口类型 SATA,USB, ESATA接口
有没有函数接口获取,存储设备的接口类型

例如:
/dev/sda 
/dev/sdb
设备名的
接口类型有可能是USB,SATA的.
怎样通过一个函数获取

------解决方案--------------------
可以查查看类似hdparm等与硬盘信息相关的命令,有没有对应参数;然后用popen函数读出结果。

不过好像Linux对于SATA和USB是识别成同一接口类型的,SCSI好像是。
------解决方案--------------------
命令行下可以通过 readline /sys/block/sda等判断类型,所以内核态应该是有数据结构保存了这个信息的。
具体的函数需要看/sys文件系统中block设备驱动注册的回调函数

total 0
lrwxrwxrwx 1 root root 0 Sep  3 23:59 dm-0 -> ../devices/virtual/block/dm-0
lrwxrwxrwx 1 root root 0 Sep  3 23:59 dm-1 -> ../devices/virtual/block/dm-1
lrwxrwxrwx 1 root root 0 Sep  3 23:59 dm-2 -> ../devices/virtual/block/dm-2
lrwxrwxrwx 1 root root 0 Sep  4 00:02 fd0 -> ../devices/platform/floppy.0/block/fd0
lrwxrwxrwx 1 root root 0 Sep  4 00:02 loop0 -> ../devices/virtual/block/loop0
lrwxrwxrwx 1 root root 0 Sep  4 00:02 loop1 -> ../devices/virtual/block/loop1
lrwxrwxrwx 1 root root 0 Sep  4 00:02 loop2 -> ../devices/virtual/block/loop2
lrwxrwxrwx 1 root root 0 Sep  4 00:02 loop3 -> ../devices/virtual/block/loop3
lrwxrwxrwx 1 root root 0 Sep  4 00:02 loop4 -> ../devices/virtual/block/loop4
lrwxrwxrwx 1 root root 0 Sep  4 00:02 loop5 -> ../devices/virtual/block/loop5
lrwxrwxrwx 1 root root 0 Sep  4 00:02 loop6 -> ../devices/virtual/block/loop6
lrwxrwxrwx 1 root root 0 Sep  4 00:02 loop7 -> ../devices/virtual/block/loop7
lrwxrwxrwx 1 root root 0 Sep  4 00:02 ram0 -> ../devices/virtual/block/ram0
lrwxrwxrwx 1 root root 0 Sep  4 00:02 ram1 -> ../devices/virtual/block/ram1
lrwxrwxrwx 1 root root 0 Sep  4 00:02 ram10 -> ../devices/virtual/block/ram10