Mac OS XのデバイスのBSD番号を取得する方法はありますか?
質問
私のプログラムは、入力から / dev / rdisk0
などのデバイスパスを読み取り、 IOKit
でBSD名 disk0
のディスクを探します。 。そのためには、パスから / dev / r
を削除する必要があります。
このパスをハードコーディングすると、Mac OS Xの将来のバージョンで破損する可能性があります。したがって、別の方法を使用します。デバイスのBSDメジャーおよびマイナーバージョンを使用して IOService
>
私の質問は次のとおりです。BSDのマイナー番号とメジャー番号をパスから抽出することは可能ですか?
解決
はい。 stat
syscallを使用します。探している struct stat
のメンバーは st_dev
です。これは、ビットシフト後のメジャーとマイナーのORです。
所属していません StackOverflow