리눅스에서 2기가 이상인 파일에 접근하기


도스 테이블을 만지작거리는중.

이상하게 값들이 제대로 안들어가는거 같아서.. 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같은 대용량 파일(?) 도 잘 처리가 된다..
Trackback 0 Comment 4
  1. Favicon of http://blog.naver.com/khmirage.do BlogIcon 환상경 2007.06.28 19:03 address edit & del reply

    이런 굇수님!!!!

    • lowid 2007.06.29 01:35 address edit & del

      굇수말고 딴말도 해요 ~

    • Favicon of http://oseb.egloos.com BlogIcon oseb 2007.06.30 18:02 address edit & del

      그럼 잡스같은 교주가 좋겠군요.
      교주님!

    • Favicon of https://lowid.tistory.com BlogIcon Lowid 2007.07.02 01:07 신고 address edit & del

      교주라뇨 >_<

prev 1 ··· 193 194 195 196 197 198 199 200 201 ··· 342 next