2GB가 넘는 파일을 다룰때는 특별한 함수를 사용해야 하나요?

superkkt의 이미지

s_offset = ftell(fp);

현재 파일의 offset을 얻기위해 ftell을 사용합니다. ftell은 long형으로 offset 값을 리턴합니다. 그렇다면 최대 2GB까지만 처리를 할 수 있다는건데요.. 이 제한을 극복하려면 어떻게해야 하나요?

superkkt의 이미지

답변 감사합니다. 링크해주신 문서를 읽어봤는데 모두 fopen, ftell 등 f* 관련 함수에 대한 내용만 나와있군요. 사실 제가 필요한것도 이 부분이긴한데..

한가지 궁금한게 open을 사용해서 파일을 열고 read 함수를 사용하더라도 offset을 가지고 있는데 이 경우에는 어떻게 2GB 제한을 풀 수 있나요?

======================
BLOG : http://superkkt.com

체스맨의 이미지

O_LARGEFILE 플레그나 lseek64 함수 등을 찾아보시면 됩니다.

Orion Project : http://orionids.org

kmhh0021의 이미지

superkkt wrote:
답변 감사합니다. 링크해주신 문서를 읽어봤는데 모두 fopen, ftell 등 f* 관련 함수에 대한 내용만 나와있군요. 사실 제가 필요한것도 이 부분이긴한데..

한가지 궁금한게 open을 사용해서 파일을 열고 read 함수를 사용하더라도 offset을 가지고 있는데 이 경우에는 어떻게 2GB 제한을 풀 수 있나요?

man lf64 해보시죠.


-------------------------------------------
피바다=피받아
http://blood.egloos.com
[一笑一少 一怒一老]
[笑門萬福來]