質問

なぜに statfs()statvfs() 通話の両方が存在がいい?

どのような場合もう一つのですか?

役に立ちましたか?

解決

の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新規追加した statfs64fstatfs64 システム呼び出しを使用する拡大の構造にも対応できるようサイズです。) しかし、 statfs はいまだに有Linuxにおける決定におけるファイルシステムタイプ (仮んでも大丈夫書Linux特有のコードとします。

statfs()は、のかなりの優れた大容量ファイルのサポートを扱っている、statvfs()の賛成で廃止されました。 statfs()はunsigned long型の値を超えるサイズの奇妙なことを行うことが知られています。

私の知る限り伝える(覚え)することができますよう、statvfs()はちょうどPOSIX代替として導入された後、RedHatの7.3以来の周りされています。あなたはおそらく(ほとんど)最近のシステム上でそれを見つけることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top