리눅스에서 2기가 이상인 파일에 접근하기
Programming/C 2007. 6. 28. 12:19
도스 테이블을 만지작거리는중.
이상하게 값들이 제대로 안들어가는거 같아서.. long long 의 형까지 써보면서 삽질을 해봤지만
안되길래 구글링.... 한 결과
"open,lseek,fopen같은 함수는 2G정도의 파일만 접근이 가능하다.."
는 걸 알아냈다..............
아마도 off_t 값의 범위 때문에 그럴지도?
해결방법은
open64,lseek64처럼 직접소스에 64를 추가시켜주거나
(이때는 따로 인클루드파일을 추가시켜주거나 OR DEFINE을 해줘야하는듯)
D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
를 Gcc컴파일할때 추가해주면 된다 (gcc 버전 3.4부터 된다는 말이 있는데?)
이리하면
/dev/hda같은 대용량 파일(?) 도 잘 처리가 된다..
'Programming > C' 카테고리의 다른 글
오늘 할짓 없어서 한 뻘짓. (4) | 2008.01.24 |
---|---|
메모리 직접 접근의 유용성 (memcpy) (3) | 2007.07.01 |
Mpd 싱크 가사....... 프로그램 (8) | 2007.05.25 |
간단한 양방향 linkedlist (6) | 2007.05.11 |
세그멘테이션 폴트를 줄이자! valgrind (4) | 2007.05.08 |