2017-12-23 16 views
1

fgetpos/fsetpos가 파일 위치로 돌아 가기 위해 사용됨을 알고 있습니다.fgetpos/fsetpos가 fseek보다 빠릅니다.

그러나 fseek를 사용하여 해당 위치에 액세스하면 fgetpos/fsetpos를 사용하여 나중에 다시 돌아 오거나 동일한 fseek를 다시 사용하는 것이 더 효율적입니까?

+0

어떤 시스템에 있습니까? 내 생각에 이러한 기능을 구현하는 대부분의 시스템 또는 모든 시스템에서 차이점은 무시할 수 있습니다. 그러나 확실히 알기 위해서는 실제로 측정해야합니다. 또는 소스 코드가있을 때 읽을 수 있습니다. –

+0

저는 Windows에 있지만 groupmate는 Unix에 있기 때문에 일반적인 것을 찾고있었습니다. – Jespoke

답변

1

fgetpos/fsetpos가 fseek보다 빠릅니다.

일반 파일 위치 지정의 경우 fseek()/ftell()은 약 LONG_MAX의 파일 크기로 제한됩니다. fsetpos()/fgetpos()은 파일 시스템의 파일 크기를 처리하도록 설계되었습니다.

큰 파일의 경우 fseek()/ftell()은 선택할 수 없습니다. @Thomas Padron-McCarthy

C99 이후 코드를 작성할 때 강력한 코드는 더 제한적인 fseek()/ftell()을 사용하여 존재하지 않을 수도있는 부수적 최적화 대신 fsetpos()/fgetpos()을 사용합니다.