문제

statfs() 그리고 statvfs() 두 사람이 비슷할 때 두 사람이 존재합니까?

어떤 상황에서 나는 서로를 선호합니까?

도움이 되었습니까?

해결책

"역사적 이유".

원래 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 교체로 소개 된 직후에 주변에있었습니다. 아마도 (대부분) 현대 시스템에서 찾을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top