STATVFS ()와 STATFS () 시스템 호출의 차이?
해결책
"역사적 이유".
원래 4.4bsd 정의 a statfs()
전화. Linux는 나중에 같은 이름으로 약간 다른 호출을 구현했습니다. Posix는 정의하여 모든 Freenix와 Unix 버전간에 표준화했습니다. statvfs()
.
statfs()
OS- 특이 적입니다
statvfs()
POSIX 기능입니다
그들이 모두 약간 다른 구조를 돌려 주면서 나중에 나올 구조는 첫 번째 구조를 대체 할 수 없습니다.
일반적으로 사용해야합니다 statvfs()
, posix one. 그러나 어떤 경우에는 BSD (또는 무엇이든)가 실제로 휴대하기 쉽습니다.
다른 팁
파일 시스템 용량 및 사용 정보 만 원한다면 다른 답변이 정확합니다. statvfs
표준 posix이고 큰 파일 크기를 더 잘 처리하기 때문입니다. statfs
BSD- 및 Linux- 특이 적이며 각각에 따라 다른 구조가 있습니다. (Linux 2.6이 추가되었습니다 statfs64
그리고 fstatfs64
확장 된 구조를 사용하여 더 큰 크기를 처리하는 시스템 호출.) 그러나 statfs
파일 시스템 유형을 결정하는 데 여전히 Linux에서 유용합니다. (Linux 별 코드를 작성해도 괜찮다고 가정합니다).
statfs()
호의적으로 더 이상 사용되지 않습니다 statvfs()
, 그것은 거래합니다 상당히 큰 파일 지원으로 더 좋습니다. statfs()
서명되지 않은 길이의 값을 초과하는 크기에 대해 이상한 일을하는 것으로 알려져 있습니다.
내가 말할 수 있고 기억할 수있는 한, statvfs()
Redhat 7.3 이후 Posix 교체로 소개 된 직후에 주변에있었습니다. 아마도 (대부분) 현대 시스템에서 찾을 수 있습니다.