본문 바로가기

Programming

Visual C++ / 2GB이상 파일에 접근할 때 (fseek 대신 _fseeki64)

 

 그 동안, 스케일이 큰 시뮬레이션을 수행했을 때 생성되는 파일을 읽어들이면

 꼭 특정 스텝이후의 데이터에 접근하지 못하는 현상이 나타나곤 했다. 뭔가 파일 사이즈와 관련이 있을 거라고 생각은 했지만

 어떻게 접근해야할지 그 방법을 찾지 못하다가, 이제서야 해결방법을 알아냈다.

 (그 동안 날려먹은 내 아까운 시간이여 ㅠ_ㅠ)

 

 이거 못알아 냈으면, 파일분할 알고리즘을 넣으려고 했는데, 그런 황당한 방법 안써도 되서 천만 다행이네.

 fseek가 큰 용량의 파일 (2GB이상이라고 합니다.)에 접근시에 문제를 발생시킨다고 하여

 이러한 경우에는 _fseeki64 를 사용하면 되고, 매개변수는 동일하게 쓰므로 기존에 사용하던 fseek를 그대로 _fseeki64로 대체하기만 하면

 간단하게 문제 해결!!!!

 

 아마도, 기존의 32bit 시스템에서, 그리고 FAT32 파일 포맷에서의 문제가 이어져 온 것이 아닌가 싶다.