差statvfs()およびstatfs()システムコ?
解決
のErr、 "歴史的な理由" ます。
もともと4.4BSDはstatfs()
コールを定義しました。 Linuxは、後で同じ名前を持つ若干異なるコールを実装しました。 POSIXではstatvfs()
を定義することによって、すべてのFREENIXとUnixバージョン間で、それを標準化します。
statfs()
は、OS固有のものです。
statvfs()
があるPOSIX準拠
それらはすべて一緒に来て、わずかに異なる構造、後でものを返すように、第1を置き換えることはできません。
あなたはstatvfs()
を使用する必要があり、一般的には、Posixの1。 (例えば、PTY)いくつかの例のように、しかし、BSD(または何でも)1は、実際には、よりポータブルである「とのPosixを使用する」アドバイスは注意してください。
他のヒント
またファイルシステム容量および使用方法に関する情報、その他の回答が正しい:好 statvfs
ではPOSIX標準品のファイルサイズです。 statfs
はBSD-Linux特有の異なる構造です。(Linux2.6新規追加した statfs64
や fstatfs64
システム呼び出しを使用する拡大の構造にも対応できるようサイズです。) しかし、 statfs
はいまだに有Linuxにおける決定におけるファイルシステムタイプ (仮んでも大丈夫書Linux特有のコードとします。
statfs()
は、のかなりの優れた大容量ファイルのサポートを扱っている、statvfs()
の賛成で廃止されました。 statfs()
はunsigned long型の値を超えるサイズの奇妙なことを行うことが知られています。
私の知る限り伝える(覚え)することができますよう、statvfs()
はちょうどPOSIX代替として導入された後、RedHatの7.3以来の周りされています。あなたはおそらく(ほとんど)最近のシステム上でそれを見つけることができます。