2016-12-22 5 views
0

mountコマンドで示されているように特定のファイルパスのボリュームプロパティのプロパティを取得し、そのコマンドを使わずにPOSIXまたは関連するAPIを呼び出すのが好きです。BSD関数を使用してファイルのファイルシステムタイプを調べる

OS Xでmountコマンドを使用すると、使用可能なすべてのボリュームの一覧が表示されます。私はgetfsent()初めて起動したとき、私が興味を持っていたデータとstruct fstab構造体を返しgetfsentman mountポイント私を、。

、私はすなわち、「/」のために、ルートファイルシステムに関する情報を取得します。

問題は、マウントポイントをそれ以上取得できないという問題です。 man getfsentは、それ以上のマウントポイントを知るために単に繰り返し呼び出すべきであると示唆していますが、次の呼び出しはNULLを返します。私はこの機能が、実際の "/ etc/fstab"ファイルに含まれているものだけを返すのではなく、OS Xが後で動的にマウントする他のボリュームを返すのではないことを私は推測します。

しかし、mountコマンドはこれらの追加のボリュームをリストすることができるので、方法が必要です。それは何ですか?あるいは、私はソースコードを見るだけかもしれませんが、opensource.apple.comから入手できる多くのダウンロードのどれが含まれているのかわかりません。

アップデート:マウントされているすべてのボリュームをリストする方法については、How to iterate all mounted file systems on OSXを参照してください。

+1

おそらく、 'dtruss'を' mount'で使うと、必要なシステムコールを特定するのに役立ちます。 – rdupz

+0

出発点は[FSMegaInfoGUI](http://www.zeroonetwenty.com/code/)をダウンロードすることです。ソフトウェアは古いものですが(Appleのソースコードに基づいています)、まだ動作しています。 – vadian

答えて

0

特定のファイルのボリュームのプロパティ(ファイルシステムタイプなど)を学習するために、statfs()を呼び出してfstypenameフィールドを読み出すことができます。そうすれば、私はマウントされたファイルシステムを反復処理する必要はありません。今質問を編集します。

関連する問題