2012-12-15 2 views

답변

0

data "배열"실제로 고가 할당으로 생성되거나 복사되지 지칭 - 그것은 단지 OS는 메모리에있는 파일의 내용을 나타내는 데 사용하는 가상 메모리 공간에 대한 포인터이다. 이것은 약간의 부기이지만 실제 중요한 작업은 아닙니다.

처음 액세스 할 때 (즉 data [0]), C++ 스트림보다 더 효율적인 최적화 된 루틴을 사용하거나 파일의 첫 번째 블록에서 OS 페이지를 읽습니다. 좋은 OS'es는 또한 두 번째 블록을 미리로드하고 사용 된 이전 블록을 자동으로 삭제하여 예상보다 빠른 속도로 물리적 메모리를 효율적으로 관리합니다. 파일이 무료 가상 메모리 공간에 맞는지 확인하십시오. 일반적으로 32 비트 코드의 1GB 이상의 파일에만 문제가 있습니다.

아니요, 다른 방법으로는 콘텐츠에 액세스 할 수 없습니다. (표준 I/O 루틴을 사용하여 파일을 다시 여는 것이 좋습니다!)

관련 문제