리눅스에서 2GB이상의 파일을 다루는 방법을 알고 싶습니다.

yann8166의 이미지

glic version : 2.5
Kernel version : linux 2.6.18
gcc version : 4.1.2

입니다. 찾아보니 LFS를 모두 지원 한다고 하네요

그리고

gcc 컴파일시 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 옵션도 주었습니다.

fopen에선 정상 반환 되는데

fwrite 호출시 SIGSEGV 시그널을 받고 프로그램이 종료 됩니다.

fseek 함수 호출시에도 errno 75를 반환합니다.

즉 fopen 이외에는 다른 file 처리 함수들이 64비트 파일을 처리 하지 못하는 것 같습니다.

혹시나 해서 sizeof(off_t) 와 sizeof(streamoff)를 모두 찍어봤는데

8, 8로 찍힙니다.

하지만 파일이 2GB을 처리하지 못합니다.

도와주세요.

yann8166의 이미지

글이 중복으로 올라가서 하나 삭제하고 싶은데, 삭제 버튼이 안보이네요.

Necromancer의 이미지

다음을 참조하시면 될 듯 하네요.

https://kldp.org/node/35832

https://kldp.org/node/25367

Written By the Black Knight of Destruction