문제

Gigabyte 파일에서 선택한 데이터에 대한 선택된 데이터에 대한 일종의 빠른 액세스를 제공하는 것에 직면 해 있습니다. 일단 시작점을 찾으면 후속 액세스가 순차적입니다. 파일에는 각 레코드 전면에 날짜가 포함되어 있으며 날짜가 파일 전체에서 증가합니다. 나는 처음부터 시작하고 프론트에서 물건을 무시하는 파일을 읽는 것을 원하지 않습니다. Windows 응용 프로그램에만 관심이 있습니다. 텍스트 모드에서 파일을 열고 싶습니다.

64 비트 FSEEK / FTELL 또는 FSETPOS / FGOTPOS 함수를 사용하여 정렬 바이너리 검색을 수행 할 수있는 일이 발생합니다. 나는 새로운 라인 구분 기록의 한가운데서 추구 할지도 모른다는 것을 깨닫지 만, 당신이 단순히 fgets 호출로 부분적인 기록을 건너 뛸 수 있다고 생각할 것입니다.

FSEEK는 원점 SEEK_END 메커니즘을 제공하므로 FTELL과 함께 사용하여 파일 크기를 결정할 수 있습니다. FSETPOS / FGOTPS와 비슷한 시설이 보이지 않습니다. FSETPOS / FGOTPOS로 갔을 때 파일 크기를 어떻게 얻을 수 있습니까?

_FSEEKI64 / _FTELLI64 FSETPOS / FGOTPOS에서 사용하는 Int64 및 FPOS_T를 사용하면 Int64이므로 포인터에서 산술을 수행 할 수 있어야합니다.

또는 여기서 잘못된 트랙에서 벗어 났습니까? 다른 접근 방식을 고려해야합니까?

도움이 되었습니까?

해결책

_fseeki64 / _ftelli64는 원하는 것을 정확히 수행하므로 왜 그를 사용하는 것을 주저합니까?당신의 접근 방식은 괜찮습니다.

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