- ベストアンサー
UNIX C でディスクサイズの取得がしたい
現在、OS:Solaris8 言語:Cでプログラミングしているんですが、 ハードディスクの容量及び現在使用されている容量を取得する関数(ライブラリ?)ってあるんでしょうか? 初めての投稿なので勝手が分からないのですが、質問に不備などございましたらご指摘ください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
statfs()とfstatfs()というシステムコールが お望みのものに近いと思います。 statfs()は容量を知りたいファイルシステム上にある ファイル名を指定することで、そのファイルシステムの容量等の 統計情報が取れます。 fstatfs()は既にオープンされているファイルディスクリプタを 使って同じ情報を得ます。 ご質問で「ハードディスクの容量」とありますが、これらの システムコールで分かるのは、あくまでファイルシステム (パーティション)の容量です。 SunOS4の情報ですが、多分、Solarisでもあるんじゃないでしょうか? sys/vfs.hで宣言されています。
その他の回答 (2)
- a-kuma
- ベストアンサー率50% (1122/2211)
> manで調べようと思ったのですがエントリにありませんでした。 AnswerBook に statvfs() の説明がありますので、参考まで。
お礼
ありがとうございました。参考になりました。
- u_kappa
- ベストアンサー率30% (6/20)
ご存知かも知れませんが、UNIXコマンドでは"df"があります。 詳しくはマニュアルを参照ください。 Cでこのコマンドを実行することも出来ると思いますが少々面倒ですしね。 関数であるかどうかは調べてみます。
お礼
回答ありがとうございます。 そうなんですよね、"df"を実行することも考えたんですが・・・ 面倒なことと処理時間がどうなんだろうと思いまして。 "df"での実装を試してみます。
お礼
回答ありがとうございます。 manで調べようと思ったのですがエントリにありませんでした。 sys/vfs.hがあったのでそれを調べてみます。