各位先進好
小弟最近有個工作
需要用C語言去找到linux下,硬碟的/dev/ 的sd 之編號
小弟對linux很陌生
我們的環境下,主機上只可能插有 兩個usb碟 和 一個硬碟
所以ls /dev/sd*
之後
可能長成
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1
這個樣子
這時候我插了一個硬碟和一個usb
且sda是硬碟,sdb是usb
我的工作就是利用C語言去找出 sda 這個字串
當然硬碟不可能永遠都是sda,如果先插usb再插硬碟
硬碟就可能變成sdb或sdc等等
我目前是先用C語言讀取 /proc/partitions 這個檔案
可以找到類似這樣的資訊
major minor #blocks name
8 0 488386584 sda
8 16 15646720 sdb
8 17 15646688 sdb1
然後判斷 sda的 blocks 比sdb的 blocks 還要大,所以回傳sda字串
但是我想說這個方法感覺很怪異
如果哪一天插了一個小容量的硬碟和一個大容量的usb
就馬上會回傳錯誤的sdx了
所以想請問版上前輩,有沒有什麼linux的command或者哪一個linux的檔案
有在紀錄著 usb 和 hd 掛載在 /dev/sdx 哪裡 的相關資訊呢?
跨檔案分析也可以喔~
先謝謝大家^^