Err, "исторические причины".
Изначально 4.4BSD определял вызов statfs()
. Позже Linux реализовал немного другой вызов с тем же именем. Posix стандартизировал его между всеми версиями freenix и Unix, определив statvfs()
.
statfs()
зависит от ОС
statvfs()
соответствует posix
Поскольку все они возвращают слегка отличающиеся структуры, более поздние из них не могут заменить первые.
Как правило, вы должны использовать statvfs()
, Posix. Будьте осторожны с рекомендациями «использовать Posix», так как в некоторых случаях (например, pty) BSD (или любой другой) более практичен.